PureConnect

Discussion Thread View
Expand all | Collapse all

Custom OUTBOUND SIP headers

  • 1.  Custom OUTBOUND SIP headers

    Posted 12-28-2017 19:44
    I have been researching custom SIP headers for outbound calls to other phone systems. We need to be able to send information about an existing call (Interaction 1) through to a new conference call to the outside system (Interaction 2). We have had the capability of making this transfer as part of our legacy system for several years, but now we have the opportunity to send information via custom SIP headers to that outside system. I saw the thread about using handler "System_TransferCallRequest" here: http://community.inin.com/forums/showthread.php?11245-Handler-read-access-to-SIP-Header-on-incoming-call However, we are not looking to dump the call off with a transfer, we need it to be a conference call that we maintain control of and can pull it back/dump the conference as desired. I tried setting Transferred Headers and Call Attribute Headers on the lines we use to make the outbound SIP call, but it pulls no data... I'm not sure where I have to populate it so that it even should. N SIPSession::GetCustomHeaders : Didn't find custom header=EIC_UserToUserData 13:01:12.3111736_0094 SIPEngine.Processing 0x21d0 N SIPSession::GetCustomHeaders : Didn't find custom header=User-to-User 13:01:12.3111736_0100 SIPEngine.Processing 0x21d0 N SIPSession::GetCustomHeaders : Didn't find custom header=usertouser 13:01:12.3111736_0103 SIPEngine.Processing 0x21d0 The only two toolsteps I see with Custom Headers are Complete external blind transfer (which we do not want to do), and Complete External Call (extended), which isn't to be used outside of system handlers.


  • 2.  RE: Custom OUTBOUND SIP headers

    Posted 12-29-2017 14:48
    I'm going to start with the standard disclaimer that you are going to be modifying a base system handler with no customization point so do this at your own risk. I take no responsibility for how you use the information below and you are responsible for any bad things that happen. Alright now that we got that out of the way. I've been playing around with the SIP headers for transfers as well as conference calls. The Eic_UserToUserData attribute can be used to include values in a SIP header, however it adds everything to a single line and appends ININAttr: to the front of the value. This may not work for the 3rd party system you are interfacing with. If you have a SBC you could use header manipulation to remove the ININAttr value and reformat the string the way you need it. I did also find that in handler System_InitiateCallRequest there is a tool step named Complete external call (extended) which has an input named Custom Headers. This value is not set to anything currently but if you put all of your values into the string separated by semi-colons the values will appear on their own lines. Note that the case is always forced to lower case. In your conference handler you should be able to assemble the custom values you want, set an attribute and then go modify System_InitiateCallRequest to catch the attribute and set it to the Custom Headers input of the tool step Complete External Call (Extended). Keep in mind that this handler is used for *ALL* calls out of the system so take caution when you modify this handler. I did open a ticket with Genesys support asking why there is no way to set the custom headers value with a customization and they said they raised this to dev as an enhancement request but obviously there is no telling when, if ever, they will add this to a customization point. -Mark


  • 3.  RE: Custom OUTBOUND SIP headers

    Posted 12-29-2017 15:12
    Thanks for the reply Mark. We did see the toolstep you mention in System_InitiateCallRequest, but previous dealings with this handler broke the association with the original "Interaction 1" that we pull attributes from to make Interaction 2 (and the subsequent conference call) authenticate through the 3rd party IVR automatically. And as I'm sure you know, the toolstep isn't to be used outside of those system handlers, so that prompted me to look elsewhere. I did get the ININATTR working after posting yesterday. I was missing a few things to make it work the first time I tried it. We can now populate our attributes as we wish in this header and customize them out in the real SIP world. Hopefully, our 3rd party could pull from this header without too much customization on their end... But.... We also found that the existing Extended Place Call toolstep (which we were using in the existing handler flow to make Interaction 2, then conference Interaction 1 and 2 together) has an input of "Diversion Name" that we populated with a string value... and as long as we set a diversion reason (currently 11 = Away), the SIP diversion header is included with the initial invite as well, which gives us options if our 3rd party can't pull from the ININATTR header for whatever reason. This diversion is actually very minimal customization on our part, which makes it our number 1 choice if they can pull from the diversion header. At this point we have not had any sort of kick off meeting or anything yet, so this at least gives us options to discuss when that time comes. Our Cisco 4331 gateways would have no problem manipulating them if needed, but I don't even know what sort of connection we will have to them, or if any manipulation on our end will be needed via SBC, or if we'll have direct SIP connectivity through our firewalls/etc/etc/etc... Thanks again.


  • 4.  RE: Custom OUTBOUND SIP headers

    Posted 13 days ago
    Just a quick note on this.  I was having issues getting this to work until I inserted the "Set Call State" tool-step before making the assignment value to the sCustomHeaders Variable.

    ------------------------------
    Vincent Moore
    CTS LanguageLink
    ------------------------------