Step Four - Receiving a TCAP Transaction

 

The API function described in this section allows you to receive a TCAP transaction from the SS7 network via SwitchKit.

 

 

Application Code

Transactions are received via dialogue handler and registered with SKTAL. Sample implementation for dialogue handler is shown in the following code excerpt.

i/*

* new dialogue handler

*/

extern "C" int

newDialogue(int instance, unsigned newDID)

{

printf("NEW DIALOGUE: %08x\n", newDID);

// register a message handler for new dialogue.

return sktal_setTCAPDialogHandler(instance, newDID,

onMessage, NULL);

}

 

/*

* Message handler.

*/

extern "C" int

onMessage(int instance, SKTAL_EVENT *ev, void *tag)

{

static sktal::TCAP_Dialogue *dlg = NULL;

SKTAL_CPT cpt;

sktal::Event event;

unsigned did;

 

printf("ON MESSAGE\n");

if (TCAP_MSG_TYPE(ev) == SKTAL_TCAP_DLG)

{

event = ev;

sktal::TCAP_Dialogue::Receive(sktal_getTCAPHandle(instance),

event, &dlg);

 

if (dlg)

{

dlg->Print(std::cout);

}

}

else if (TCAP_MSG_TYPE(ev) == SKTAL_TCAP_CPT)

{

printf("Got component\n");

sktal::TCAP_Component *result;

 

event = ev;

sktal::TCAP_Component::Receive(sktal_getTCAPHandle(instance),

event, dlg, &result);

 

result->Print(std::cout);

 

delete result;

delete dlg;

dlg = NULL;

}

else

{

fprintf(stderr, "Unknown message type: %d\n", TCAP_MSG_TYPE(ev));

}

 

printf("RETURN FROM USER HANDLER\n");

 

return (SK_OK);

}

}