Genesys CTI User Forum
Genesys CTI User Forum => Genesys CTI Technical Discussion => Topic started by: genesysguru on November 11, 2013, 05:33:41 PM
-
Hi,
I have a SIP call in queue receiving treatment from Media Server under URS control (IRD based strategy rather than SCXML) and I need to send a SIP INFO message with a custom body. Any ideas how to do this?
The only possible way I could think of doing this would be to hijack AoC type functionality e.g. SIP Server maps the information in the AttributeExtensions of a TPrivateService request to the SIP MIME body of an INFO message
Thanks
-
In case where the treatment is a voicexml script you can use Genesys namespace and use gvp:send attribute, which instruct MCP to send SIP INFO message containing the list of variables declared in namelist parameter. I do not know about other possible way
-
Hi,
Has anybody got an example of a RequestPrivateService from ORS which results in any sort of SIP INFO (AoC or otherwise!). In the example below I think my problem is that I am missing something in AttributeExtensions or possibly missing AttributePrivateMsgID but there is no way of adding this using an IRD SendRequest function.
My starting point for trying to generate an adhoc SIP INFO from an IRD strategy (content not important at the moment) is SIPS deployment guide which says:
ORS sends AoC information, as well as related parameters, in a TPrivateService request to SIP Server. The request includes the following:
AoC information as the SIP MIME body in the AttributeExtensions
DN of AoC sender
Connection ID
I have managed to get as far as this:
14:48:37.532 Trc 04541 RequestPrivateService received from [16] (00000004 URS_1 192.168.1.11:44182)
message RequestPrivateService
AttributeThisDN '0150'
AttributeConnID 00890237bba26012
AttributeReferenceID 147
14:48:37.532 Int 04543 Interaction message "RequestPrivateService" received from 16 ("URS_1")
14:48:37.533 -- created: CRequest@2aaaac07efd0 RequestPrivateService-URS_1[16]/147
14:48:37.533: $+TLIB:CTI:Unknown:0:0
14:48:37.533 +++ CIFace::Request +++
-- new invoke
-- thisCall by party
Parsed: RequestPrivateService
From: URS_1[16]/147
Numbers: +<0150> -<none>
Calls: 2aaaac078480:1 none
Parties: 0150.2aaaac071470-2aaaac078480:1
none
Status: parsed:1 queued:0 sent:0 acked:0 preevent:0 event:0 context:0 transferred:0
-----
-- validate
-- state check: ok
CIFace: Sent CRequest@2aaaac07efd0 RequestPrivateService-URS_1[16]/147
FinishRequest CRequest@2aaaac07efd0 RequestPrivateService-URS_1[16]/147
IFace stats: q=0 s=0
-- complete
14:48:37.533: ERROR: 20000019, GetRequestScope(request, scope, call,call2), SipTServerRequest.cpp,1340
Response (53): for CRequest@2aaaac07efd0 RequestPrivateService-URS_1[16]/147
-- thisCall by party
[b]14:48:37.533 Trc 36002 Request rejected: error code 53(Invalid attribute)[/b]
-
[code]
RequestPrivateService
AttributeThisDN 'AAAA'
AttributeConnID BBBB
AttributePrivateMsgID 3018
AttributeExtensions
AOC-destination DN’:‘ZZZZ’
Content-Type: application/vnd.etsi.sci+xml
Content-Disposition: render;handling=optional
Body : YYYYYYYYYYYYYYYYY
[/code]
As far as I remember Content-Type and Content-Disposition are fixed and You have to specify those specific values
-
One of macro that is going with IRD is RequestPrivateService_AOC and basically the code of this macro using is:
Assign[xml_body, StrFormat['<messageType xsi:schemaLocation=….</messageType>’, params]]
Assign[extensions, StrFormat['extensions.AOC destination DN:~s|extensions.Content-Type:application/vnd.esti.sci+xml|extensions.Content-Disposition:render ; handling=optional|extensions.Body:~s',AOC_destination_DN, xml_body]]
Assign[request_body, StrFormat['thisdn:~s|connid:~s|105:3018|~s',Dest[],ConnID[],extensions]]
Sendrequest[149, request_body]
-
Excellent! Thank you as always.
-
Terry,
Out of curiosity have you any idea what other valid values are for the PrivateMsgID e.g. AoC is 3018, others?
-
3013 - Start recording
3014 - Stop recording
3015 - Pause recording
3016 - Resume recording
3018 - AOC request
3021 - Register for receiving notification when agent app sends TAnswer