CAF: Leg Creation Samples
From TBwiki
(Difference between revisions)
(→Creating a Media-only Leg) |
(→Creating a Media-only Leg) |
||
Line 58: | Line 58: | ||
ptrLegAttribute->SetPeerSDP(&SdpInfo); | ptrLegAttribute->SetPeerSDP(&SdpInfo); | ||
− | To see how to fill a TBX_SDP_INFO structure ( | + | To see how to fill a TBX_SDP_INFO structure (implementation of BuildSdpInfo()), refer to [Customer_Application_Framework_:_Filling_SDP_Structure|Filling an SDP Structure]]. |
After that, all you have to do is create a TBCMCLeg and call CreateCall(), like this: | After that, all you have to do is create a TBCMCLeg and call CreateCall(), like this: |
Revision as of 07:56, 21 October 2009
Contents |
Creating a Standalone Outgoing Call
First you must build the outgoing leg attribute:
PTRCTBCMC_CALL_LEG_ATTRIBUTE ptrOutgoingLegAttribute; ptrOutgoingLegAttribute = tbnew CTBCMC_CALL_LEG_ATTRIBUTE(); ptrOutgoingLegAttribute->GetCalledNumber() = "123-4567"; ptrOutgoingLegAttribute->GetCallingNumber() = "987-6543"; ptrOutgoingLegAttribute->GetNetworkAccessPoint() = "NAP_SS7_MONTREAL";
Once you have all your parameters set, you can now create the outgoing call leg like this:
PTRCTBCAFCallLeg ptrOutgoingCallLeg = CreateOutgoingCallLeg(ptrOutgoingLegAttribute);
The function CreateOutgoingCallLeg() will do all the work to create the leg and will return it. You have now an active outgoing call leg.
Bridging an Incoming Call (manual method)
TODO ADD SAMPLE CODE
Bridging an Incoming Call (using CTBCAFBridge )
TODO ADD SAMPLE CODE
Creating a Media-only Leg
You must first create a media only leg attribute:
PTRCTBCMC_MEDIA_ONLY_LEG_ATTRIBUTE ptrLegAttribute; ptrLegAttribute = tbnew CTBCMC_MEDIA_ONLY_LEG_ATTRIBUTE(); ptrLegAttribute->GetNetworkAccessPoint() = "NAP_SS7_MONTREAL"; pMediaDesc = ptrLegAttribute->GetProfile()->MediaDescription; pMediaDesc->Type = TBCMC_MEDIA_TYPE_AUDIO; pMediaDesc->Transport = TBCMC_MEDIA_TRANSPORT_TDM or TBCMC_MEDIA_TRANSPORT_IP;
Depending on which type of NAP your using, some parameters must be set. If you are using the NAP_MEDIA_TDM:
pMediaDesc->Settings.TdmAudio.Type = TBCMC_MEDIA_SETTINGS_TYPE_TDM_AUDIO; pMediaDesc->Settings.TdmAudio.un8Timeslot = 5; Strncpy ( pMediaDesc->Settings.TdmAudio.szTrunkName, "TRUNK_TORONTO_1", sizeof(pMediaDesc->Settings.TdmAudio.szTrunkName) );
If you are using the NAP_MEDIA_VOIP:
TBX_RESULT Result; TBX_SDP_INFO SdpInfo; pMediaDesc->Settings.PacketAudio.Type = TBCMC_MEDIA_SETTINGS_TYPE_PACKET_AUDIO; // Set Local SDP Result = BuildSdpInfo("", 0, SdpInfo); // No IP specified, Toolpack will choose one TBCAF_EXIT_ON_ERROR( Result, "BuildSdpInfo failed." ); ptrLegAttribute->SetLocalSDP(&SdpInfo); // Set Peer SDP Result = BuildSdpInfo("10.0.0.15", 5000, SdpInfo); // Using peer IP address and port TBCAF_EXIT_ON_ERROR( Result, "BuildSdpInfo failed." ); ptrLegAttribute->SetPeerSDP(&SdpInfo);
To see how to fill a TBX_SDP_INFO structure (implementation of BuildSdpInfo()), refer to [Customer_Application_Framework_:_Filling_SDP_Structure|Filling an SDP Structure]].
After that, all you have to do is create a TBCMCLeg and call CreateCall(), like this:
PCTBCMCLeg pCallLeg = tbnew CTBCMCLeg( ++mun32LegId, ptrLegAttribute, this, 0, &mLegMutex ); pCallLeg->CreateCall();