" /> Passing attached data between URS and ORS - Genesys CTI User Forum

Author Topic: Passing attached data between URS and ORS  (Read 10461 times)

Offline Barn5ter

  • Newbie
  • *
  • Posts: 25
  • Karma: 0
Passing attached data between URS and ORS
« on: May 28, 2015, 10:53:10 AM »
Advertisement
Guys

We are trying to run a situation where initially the chat interaction is being processed in ORS, then we call a strategy from URS that attaches some data to an interaction which is then passed back to ORS for further processing.

Can anyone give me any tips on how to maintain attached data between ORS and URS?

Cheers,

Offline Kubig

  • Hero Member
  • *****
  • Posts: 2755
  • Karma: 44
Re: Passing attached data between URS and ORS
« Reply #1 on: May 28, 2015, 11:20:15 AM »
Through UserData?

Offline Barn5ter

  • Newbie
  • *
  • Posts: 25
  • Karma: 0
Re: Passing attached data between URS and ORS
« Reply #2 on: May 28, 2015, 11:41:30 AM »
LOL - fair response. I am just going to rerun a test we are doing then I will explain in more detail. Its slightly more complicated than I may have indicated. Appreciate the response though.

Offline Kubig

  • Hero Member
  • *****
  • Posts: 2755
  • Karma: 44
Re: Passing attached data between URS and ORS
« Reply #3 on: May 28, 2015, 11:51:47 AM »
Just be wondering, so have to ask you : Why are you using the URS strategy if there is ORS?

Offline Barn5ter

  • Newbie
  • *
  • Posts: 25
  • Karma: 0
Re: Passing attached data between URS and ORS
« Reply #4 on: May 28, 2015, 02:29:08 PM »
Ok so an extremely interesting question which if I had enough character space to fill in the details I would.  ;D I can try... but will do so later. Its very complicated. The issue we are having is if we attach something in URS and then pass the interaction back to ORS the attached data is no longer present.

Offline cavagnaro

  • Administrator
  • Hero Member
  • *****
  • Posts: 7641
  • Karma: 56330
Re: Passing attached data between URS and ORS
« Reply #5 on: May 28, 2015, 03:44:10 PM »
??? ??? ???
And ORS is behaving as what?
Logs?

Offline Barn5ter

  • Newbie
  • *
  • Posts: 25
  • Karma: 0
Re: Passing attached data between URS and ORS
« Reply #6 on: May 29, 2015, 07:36:12 AM »
OK gonna run some more tests today in our dev environment. And I'll see if I can gather some log extracts to share. So what on earth am I trying to do? This is going to take some explaining but here we go....

We are using GWE. When our team (can I just state I was not involved in this decision) decided to build the strategies to be used for the project, they chose to take the out of the box Genesys provided Web Engagement strategies (for the playground app) and then add and change stuff inside those strategies to suit our business need. They then called them our strategies  ;D

There is one major flaw in this we have discovered. The Genesys GWE Composer strategies have limited functionality and do not actually contain all the code necessary to make all the Composer functions work properly. Take DBData Dip for example. We added a DB dip into the strategy in Composer and it failed. Turns out all the jsp's you need to get the DB Dip to work are not automatically packaged within the backend.war and you have to add them manually - Genesys PS sorted this out for us.

So all in all we were in a good position ready to use the DB Data dip inside ORS. On to the second issue, turns out that when ORS executes the scxml for Web Engagement, it actually not only calls the scxml from backend server, it also executes some of the scxml there as well. Including the DB Data Dip object. So in order for the DB Data Dip object to work I need a connection from my backend server to my UCS.

Have you fallen asleep or are you still with me?  :)

I cannot give a connection from backend server to my UCS database for security reasons. I do not want to compromise myself here, but it is a connection we do not want to open up. Affectively my backend server is on a different network to my ORS, or my UCS database.

So I have two solutions
1) Make ORS do the DB Dip locally. So sounds simple enough but due to the fact we have used the Genesys strategies as our template, and the DB Data Dip took so much work to get working as it is, I feel this might actually be the harder option
2) Get URS to do the DB dip to UCS for me and carry the attached data back to ORS.

So I am trying option 2, but failing quite horribly in our dev environment. Promise log extracts to follow, I haven't worked on it for a few days as it has a lower priority than some of the other stuff I am working on.

So you did ask!  ;D I hope I haven't bored you to death.

Cheers

Offline Barn5ter

  • Newbie
  • *
  • Posts: 25
  • Karma: 0
Re: Passing attached data between URS and ORS
« Reply #7 on: May 29, 2015, 10:02:10 AM »
Ok so here is an example of the kind of thing I am trying to do.

R_CATEGORY is attached in ORS:
10:41:53.545 Trc 04541 Message EventPropertiesChanged received from 'RTG_IXNSRV_DUMMY_01'
attr_extension [bstr] = TKVList:
  'ReportingEventSequenceNumber' [str] = "91589508"
attr_actor_type [int] = 1 [STRATEGY]
attr_actor_strategy_id [str] = "RTG_ORS_01A"
attr_actor_router_id [str] = "RTG_ORS_01A"
attr_actor_tenant_id [int] = 101
attr_itx_id [str] = "0004XaAN1H7F03UE"
attr_state [int] = 2
attr_itx_type [str] = "Inbound"
attr_itx_subtype [str] = "InboundNew"
attr_itx_queue [str] = "Webengagement_Chat"
attr_itx_media_type [str] = "chat"
attr_itx_tenant_id [int] = 101
attr_itx_received_at [str] = "2015-05-29T09:41:52Z"
attr_itx_submitted_at [str] = "2015-05-29T09:41:52Z"
attr_itx_submitted_to_router_at [str] = "2015-05-29T09:41:53Z"
attr_itx_placed_in_queue_at [str] = "2015-05-29T09:41:52Z"
attr_itx_submitted_by [str] = "RTG_CHAT_01"
attr_itx_is_online [int] = 1
attr_itx_is_locked [int] = 0
attr_itx_moved_to_queue_at [str] = "2015-05-29T09:41:52Z"
attr_itx_submit_seq [str] = "91589502"
attr_itx_place_in_queue_seq [str] = "91589502"
attr_event_time [str] = "2015-05-29T09:41:53Z"
attr_changed_prop [bstr] = TKVList:
  'R_CATEGORY' [str] = "CRF"
attr_itx_user_data [bstr] = TKVList:
'LastCalledAgent_EmployeeID' '15011'
'LastCalledAgent_TimeStamp' '2015-05-29T09:21:30Z'
'LastName' 'XXX'
'visitID' '1dbde893-b9d3-4bf8-903d-32cd3b11ce67'
'webengagement' '0004XaAN1H7F03TS'
'category' 'XXX'
'IdentifyCreateContact' '3'
'PostCode' 'TW8 9DE'
'LCA_TimeStamp_chat' '2015-05-29T09:21:30Z'
'pageID' '29c8d0d7-4fcc-4a84-9349-bcaedf924a3e'
'EmailAddress' 'd4e2bf09-b655-4f08-8cb2-cd481dcdb5a1'
'FirstName' 'XXX
'ContactId' '0004UaAH06RF10BF'
'LCA_EmplID_chat' '15011'
'ChatServerHost' 'XXXXXXX'
'ChatServerPort' 'XXX'
'ChatServerDBID' '908'
'ChatServerAppName' 'RTG_CHAT_01'
'ChatServerModeHA' 'true'
'RStrategyName' 'Webengagement_Chat.Routing'
'RStrategyDBID' '1854'
'ORSI:ORS_CLUSTER:0004XaAN1H7F03UE'(list) 'Session' 'DNIS123RS94OR0M17CM0RASO7G001J27'
                                          'Node' 'XXXX'
                                          'Url' 'http://XXXXXXX:XXXXX/scxml'
[b] 'R_CATEGORY' 'CRF'[/b]

I then make a WebRequest to URS to kick off the DB Dip strategy, I need to use R_CATEGORY for the DB dip, so I try and assign it:

[img]http://C:\Users\tpa44\Pictures\URSStrategy.jpg[/img]

Using UData'R_CATEGORY'

URS never ever sees that piece of attached data:

10:41:58.884_I_I_04dc0264e183ae32 [09:06] >>>>>>>>>>>>start interp()
    _I_I_04dc0264e183ae32 [09:04] ASSIGN: __Return(SCRIPT) <- STRING: ""
    _I_I_04dc0264e183ae32 [07:46] no error mode for this call
    _I_I_04dc0264e183ae32 [09:04] ASSIGN: __Return(SCRIPT) <- STRING: ""
    _I_I_04dc0264e183ae32 [09:04] ASSIGN: __DBReturn(SCRIPT) <- STRING: ""
    _I_I_04dc0264e183ae32 [09:04] ASSIGN: __DBStrReturn(SCRIPT) <- STRING: ""
    _I_I_04dc0264e183ae32 [09:04] ASSIGN: __TargetVar(SCRIPT) <- STRING: ""
    _I_I_04dc0264e183ae32 [09:04] ASSIGN: strCategory(LOCAL) <- STRING: "CRF"
    _I_I_04dc0264e183ae32 [09:04] ASSIGN: strID(LOCAL) <- STRING: ""
[b]    _I_I_04dc0264e183ae32 [09:04] ASSIGN: strPrimaryDAP(LOCAL) <- STRING: ""[/b]
« Last Edit: June 01, 2015, 07:49:02 AM by Barn5ter »

Offline Barn5ter

  • Newbie
  • *
  • Posts: 25
  • Karma: 0
Re: Passing attached data between URS and ORS
« Reply #8 on: May 29, 2015, 10:06:43 AM »
PS if I want to put an image into my post from a flat file how do I do that? :-)

Offline Kubig

  • Hero Member
  • *****
  • Posts: 2755
  • Karma: 44
Re: Passing attached data between URS and ORS
« Reply #9 on: May 29, 2015, 11:30:23 AM »
Did you configure R-COMMAND MESSAGES for context within calling URS web API?

Offline Barn5ter

  • Newbie
  • *
  • Posts: 25
  • Karma: 0
Re: Passing attached data between URS and ORS
« Reply #10 on: May 29, 2015, 02:10:07 PM »
Mmm interesting. How would I do that then? (I think you can tell form that the answer is more than likely "no" if they are not there by default)

Offline Barn5ter

  • Newbie
  • *
  • Posts: 25
  • Karma: 0
Re: Passing attached data between URS and ORS
« Reply #11 on: May 29, 2015, 02:31:58 PM »
Current URS config:

[default]
agent_reservation=implicit
automatic_attach=false
call_kpl_time=300
call_tracking=true
compat_treatments=true
DAP_CCE_JCI=RTG_DAP_JOB_01
DAP_DDR_BUSINESSCACHE_PRI=RTG_DAP_DDRB_01
DAP_DDR_BUSINESSCACHE_SEC=RTG_DAP_DDRB_02
DAP_DDR_CACHE_PRI=RTG_DAP_DDR_01
DAP_DDR_CACHE_SEC=RTG_DAP_DDR_02
DAP_DDR_REPORTING_PRI=REP_DAP_DDR_01
DAP_DDR_REPORTING_SEC=REP_DAP_DDR_02
default_object=agent
default_stat_server=RTG_STAT_03A
extrouter_timeout=0
give_treatment=false
hide_private_data=false
management-port=5051
on_route_error=delete
on_router_activated=default
Outbound Callback StatServer=OUT_STAT_01
primary_DAP=RTG_DAP_DNIS_01
reg_delay=2
RegistrationStatusCheck_Timeout=2000
RegistrationStatusPostCLICheck_Timeout=5000
RegistrationStatusPreCLICheck_Timeout=5000
report_targets=false
request_timeout=2000
route_consult_call=true
secondary_DAP=RTG_DAP_DNIS_02
service_timeout=30
skip_targets=empty
strategy=ORS
targets_order=random
transfer_time=15
transfer_to_agent=false
transition_time=15
unloaded_cdn=default
use_agent_capacity=true
use_agentid=false
use_dn_type=any
use_extrouter=false
use_ivr_info=true
use_service_objective=false
use_translation=false
validate=false
verbose=true
verification_time=0

[http]
http_port=8040
log_buffering=true
log_file=E:\Logs\RTG_URS_03\HTTPInterface_RTG_URS_03.log
log_remove_old_files=false
log_size=50000000
soap_port=8042
verbose=3

[log]
all=E:\Logs\RTG_URS_03\RTG_URS_03
buffering=true
expire=100
segment=20000
standard=network
verbose=all

[web]
http_log_file=E:\Logs\RTG_URS_03\HTTPBridge_RTG_URS_03.log
http_log_size=50000000
http_port=8080
log_buffering=true
log_check_interval=10
log_remove_old_files=false
soap_conn_idle_timeout=50
soap_port=8082
soap_retry_attempts=1
soap_retry_timeout=5
verbose=3


Offline terry

  • Sr. Member
  • ****
  • Posts: 328
  • Karma: 35
Re: Passing attached data between URS and ORS
« Reply #12 on: May 29, 2015, 07:34:57 PM »
"I then make a WebRequest to URS to kick off the DB Dip strategy..."
How exactly you do it? Specifivally how this web request associated with interaction with changed user data?

Offline Barn5ter

  • Newbie
  • *
  • Posts: 25
  • Karma: 0
Re: Passing attached data between URS and ORS
« Reply #13 on: June 01, 2015, 07:45:48 AM »
So I REALLY need to know how to post a flat file image on this forum to demonstrate that!? (what do I put between <img hsjkhajkhj img> to say c:\ rather than http://)

Offline Barn5ter

  • Newbie
  • *
  • Posts: 25
  • Karma: 0
Re: Passing attached data between URS and ORS
« Reply #14 on: June 01, 2015, 10:48:00 AM »
TOTAL change of plan! Discovered an Option 3, which is so much easier. Forget using URS at all, I am now trying to retrieve data from CS for the Category Structure, Business Attribute instead of doing a dip into UCS.

This should be much easier. I am using the function gdata. However, syntax seems to be giving me issues. I keep getting an Invalid Label error.

The gdata function is using the following expression - varCannedResponse = category folder name in KM
gdata:<confserv>:<port>/config/CA-BA.varCannedResponse/"annex"/General/id

Any clues on where this is going wrong?