Actions

CAF: Leg Creation Samples: Difference between revisions

Line 29: Line 29:
     pMediaDesc->Type                              = TBCMC_MEDIA_TYPE_AUDIO;
     pMediaDesc->Type                              = TBCMC_MEDIA_TYPE_AUDIO;
     pMediaDesc->Transport                        = TBCMC_MEDIA_TRANSPORT_TDM or TBCMC_MEDIA_TRANSPORT_IP;
     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);

Revision as of 17:43, 20 October 2009

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);