« Back to General Discussion - All Versions

ADD information on SIP Header INVITE

Combination View Flat View Tree View
Threads [ Previous | Next ]
We have an environment where we need to send a value on a simple variable (value of protocol) into Sip header.

We tried to use a single SIP Transfer with this protocol on Header to a FaxServer.

We saw the manual ConfigurationAdminGuide.pdf
on chapter "Passing Information with SIP Headers" on page 377.

We send this parameter and did not work as expected. Any information was noticed in other side after transfer on SIP header.

How can i send a information through SIP header?

You can explain better if we have use the script showed below on ICM or on CVP tab SIP Header Passing (to ICM)?

"Call-Info~add~<sip:x@y>;parm1=value1"

What kind off script we need use on ICM for do this job?

It necessary use a ICM to parsing this information?

See attached slide showing an example.
Paul
Attachments:

Paul,
How does Studio access the SIP headers?
 

As in attached.
Attachments:

Hi Paul,
May I please ask you a question? I need to add a customer Sip header in ICM script. The value for that header is dynamic and stored in the one of ICM Call Peripherial Variable (PV9, for examle).
Is it possible somehow to assign the value of that PV9 to Sip header (Set Variable Call.SipHeader)? I tried to do it but unfortunally without any success.
Any answer or examples how to do it would be much appreciated.
I don't know why, but I don't see any attachements in you previous answers to Janine emoticon
Thank you in advance.
Dmitriy.
 
 

Dmitriy,
 
Screen shot attached.  Just use the concatenate function to build the right-hand-side of your set variable element.  BTW, there is a also a "~sub~" operation to do string substitution of part of a header but I don't think it's documented in the Config & Admin Guide.
 
Paul
Attachment

Attachments: Setting IVR-Handoff SIP Header.png (29.2k)

Hi Paul,
Thank you so much!!! It works! Great solution! I appreciate you for your help. The screenshot is quite understandable.
BTW, your example is exactly what I was looking for. I'm working on IVR-Handoff, so you told me the right idea (also about how and where to add "invoke=true")
Thank you once again. 
 

Hi Paul.
May I please ask you more help with IVR-Handoff? As I understand, you knows well cvp_bootstarp.tcl and bootstrap_ivrhandoff.tcl applications. I'm from Slovakia, and try to implement this IVR-Handoff trick (described in BRKCCT-2030 from Cisco Live London) in production. We have CVP 9.0, UCCE 9.0, 2911 VGW (IOS 15.2.2). That's why I need to know how to modify SIP-Header.
So I configured two ICM scripts - one main for agent selection and the other  one is for checking the transfer and IVR-Handoff (it is a simpliest script that plays just a wav-file, agent transfers calls to that script, after it plays greeting we expect return back to the same agent). So the customer calls to FXO port of VGW, then call must go to CVP/ICM and to agent. During a conversation the agent transfers call to another ICM script, after finishing this script the call must return back to the same agent.
To do this, I applied cvp_bootstrap.tcl at the incoming pots dial-peer, bootstrap_ivrhandoff.tcl was applied the incoming voip dial-peer which is selected for vxml-browser start (which is selected, when the label and the corellation ID is received from ICM). We see that cvp_bootstrap modifies the first SIP INVITE and adds a SIP-Header like this:
IVR-Handoff: 487958002
I successfully send it to ICM, and modify it (thanks to you), So during transfer call my GW receives SIP INVITE with such header :
IVR-Handoff: 487958002;invoke=true
But the caller is not switched to the second IVR script as expected. Agent press transfer, dials a number for the second ICM script (it is CTI Route point). We see second call leg, the customer is put on hold. But then our agent is put on hold as well and that's all. So caller is on hold, and agent is on hold too. emoticon
In the debug voice applicaton all I see that bootstrap_ivrhandoff is contacted. It tries to make a shunt call:
May 28 17:44:54.183: //626//TCL :/tcl_PutsObjCmd: CVP_IVRHANDOFF_BSTRP, IVR handoff mode, making shunt call to ingress gateway callback DNIS 487754354
then it says like that:
May 28 17:44:54.187: //-1//AFW_:/AFW_Leg_NewSetupRequest: SetupRequest Failed
May 28 17:44:54.187: //-1//AFW_:/AFW_Instance_DecrRefCount: Object: 0x3071A574, Type: Leg, RefCount: 0
May 28 17:44:54.187: //-1/23A4E78882C3/AFW_:LG-1:/AFW_M_Leg_Free:  
May 28 17:44:54.187: //-1/23A4E78882C3/AFW_:LG-1:/AFW_M_Leg_Free: LEG[-1     ][LEG_INIT(0)][Cause(0)]
May 28 17:44:54.187: //-1/23A4E78882C3/AFW_:LG-1:/decrementDialPeerCallStats: Decrementing call-stat to [-17], dial-peer [1]
May 28 17:44:54.187: //626//Dest:/DestSetup: 
May 28 17:44:54.187: Failed to setup call
May 28 17:44:54.187: //626//Dest:/DestValidatePreemptRequired:  
May 28 17:44:54.187: //626//Dest:/DestPeerPreemptRequired:  
May 28 17:44:54.187: //626//Dest:/DestPeerPreemptRequired: Checking peer [1] preemptSupport[0]
May 28 17:44:54.187: //626//Dest:/DestSetup: Destination setup failed rc(-14)
May 28 17:44:54.187: //626//Dest:/DestSetFailureCause: Change failure cause from 0 to 44
May 28 17:44:54.187: //626//Dest:/DestGetLpcorCorCause:  
May 28 17:44:54.187: //626//Dest:/DestDialPeerRotary: isLpcorBlock=0 lastFailureCause=44
May 28 17:44:54.187: //626//Dest:/DestSetupInitiate:  Dial peer rotary failed 
May 28 17:44:54.187: //626//Dest:/DestSetupInitiate: 
May 28 17:44:54.187:  : before setting failure to featvsa
May 28 17:44:54.187: //626//Dest:/DestSetupInitiate: 
May 28 17:44:54.187:  : after setting failure to featvsa
May 28 17:44:54.187: //626//Dest:/DestResetCallInfo:  
May 28 17:44:54.187: //626//Dest:/DestComplete: peer #:1 IW State IW_STATE_INIT, OB State OB_STATE_INIT
May 28 17:44:54.187: //-1//Dest:/DestStatusFromDiscCause: mapped "no requested circuit (44)"(44) to DEST_NO_RESOURCE(3)
And the caller is not switched to second script.
What may cause such behavior? Do we need to modify smth on tcl application, or can we use them as they are for this feature? Do we need any specific configurations on CVP, ICM. VGW for IVR-handoff? Are there any tricks in scripting (except SIP-header change)?
Any of your help will be much appreciated.
Thank you so much in advance.

Have you got an outgoing dial-peer configured on the VoiceXML gateway to route the shunt to the ingress gateway?   Attached doc might be useful.
Attachments: IVR Temporary Handoff Draft 0.1.pdf (213.7k)

Hi Paul,
 
 
Thank you very much for your fast reply and the document with the description of the required configuration. I've got your idea about the outgoing voip dial-peer. But how to configure that outgoing dial-peer if we have just one Voice Gateway (so Ingress Gateway and VXML Gateway are in the same device)? Is it possible to use just one gateway or for the IVR-Handoff two different gateways are mandatory?
 
If I understand it correctly, the destination pattern for this outgoing dial-peer must be 487......
 
In case of two gateways should I also configure incoming VoIP dial-peer in order to receive shunt call? If yes, is it necessary to configure cvp_bootstrap service on this new incomig dial-peer?
 
 
Here is our current gateway dial-peer and service configuration (please see the attachement).
 
Thank you once again in advance for your help.    
Attachments: gw_ivr-handoff.txt (2.5k)

Doesn't really matter whether you have common or separate gateways.  If you're using the same gateway you can just configure a single dial-peer to serve outgoing and incoming as below.   You don't need to configure a service on it as the ingress TCL session has already dynamically registered to receive the shunt call number.
 
dial-peer voice 478 voip
 destination-pattern 478......
 session protocol sipv2
 session target ipv4:10.10.3.170
 incoming called-number 478......
 dtmf-relay rtp-nte
 codec g711ulaw
 no vad
 

Hi Paul,
 
I've just returned from our customer's site. Thanks to you, your explanations and your doc - we successfully implemented the IVR-Handoff feature. I configured the additional voip dial-peer for shunt call, modified our ICM script, as it was explained in your doc and it began working!!! emoticon Once again thank you very much for your support and patience. This feature is really useful.
 
I would like to ask one more question about the feature. Now in our UCCE+CVP system it works like that:
1. Agent receives a call.
2. Agent presses Transfer buttoon on CAD or the phone
3. Agent transfers call to Handoff ICM/IVR script. The caller is put on hold by the agent.
4. IVR-Handoff switches the caller to IVR. The agent listens to hold music from GW flash.
5. After IVR script is finished the shunt call leg is disconnected.
6. Caller hears the hold music from CCM. The agent also hears the same music. 
7. If the Agent presses Resume button, he returns to the caller. Otherwise both of them receive MOH.
 
Is this planned behaivior? As far as I understand yes, because it is the Agent who puts the caller on hold at CCM. Am I right? Should the IVR-Handoff disconnect the shunt call and automatically resume the call from hold?
 
Have a nice evening and thank you for you help. I appreciate it ever so much.

Great to hear it's working for you and many thanks for the feedback.

The behaviour you observe for both caller and agent should be identical to when an agent makes a consultation call and the far-end hangs up first.   The IVR handoff TCL can only reconnect the caller-agent leg at the gateway; it can't take the call off-hold at the UCM.
 
I can't recall exactly what happens with CAD but when you use the CTIOS desktop, you can alternate back to the caller leg while the consult to IVR is in progress and when the IVR completes, the caller and agent are off-hold and automatically talking again.  The only downside to alternating back is if you want the agent to hear progress messages from the IVR session as it proceeds.
 
Paul

Gopal,

I don't see your post in the thread. Can you confirm what specific item you'd like information on?

From: Cisco Developer Community Forums <cdicuser@developer.cisco.com<mailto:cdicuser@developer.cisco.com>>
Reply-To: "cdicuser@developer.cisco.com<mailto:cdicuser@developer.cisco.com>" <cdicuser@developer.cisco.com<mailto:cdicuser@developer.cisco.com>>
Date: Thursday, 30 May 2013 21:34
To: "cdicuser@developer.cisco.com<mailto:cdicuser@developer.cisco.com>" <cdicuser@developer.cisco.com<mailto:cdicuser@developer.cisco.com>>
Subject: New Message from GOPALASRINIVASAN KUPPUSWAMY in Customer Voice Portal (CVP) - General Discussion - All Versions: RE: ADD information on SIP Header INVITE

GOPALASRINIVASAN KUPPUSWAMY has created a new message in the forum "General Discussion - All Versions": --------------------------------------------------------------
Paul Tindall:
See attached slide showing an example.
Paul


Hi Paul,
There is no slide. Can you please send it.
Thanks,
Gopal.
--
To respond to this post, please click the following link: http://developer.cisco.com/web/cvp/forums/-/message_boards/view_message/15738362 or simply reply to this email.

Hi Paul,
Yesterday we successfully finished IVR-Handoff feature implementation at customer side. Everything works as described at BRKCCT-3030 and your docs.
Thank you so much for support! Well done!
BR,
Dmitriy.