" /> Recent Posts

Recent Posts

Pages: 1 ... 4 5 [6] 7 8 ... 10
51
Thanks a lot Terry! Very good examples, I'll test these.
52
Genesys CTI Technical Discussion / Re: Esxi 6.5 and windows 2008 R2 Genesys support
« Last post by cavagnaro on September 15, 2024, 01:06:23 AM »
As we don't usually test non supported environments... There is no clear answer to this.

Enviado de meu SM-S918B usando o Tapatalk

53
Genesys CTI Technical Discussion / Esxi 6.5 and windows 2008 R2 Genesys support
« Last post by Leonxxx86 on September 12, 2024, 05:00:44 AM »
HI,
Just a question, I believe Genesys 8.1 does not support esxi 6.7 and windows 2008 R2?
My question is, what type of issues might occur under this environment configuration? Thank you
54
I think there are a few different ways that can be done without frequent looping. Some of them:

1. Based on busy treatments
  Setup busy treatments outside of Target selection object - invoke AddBusyTreatment function few times
  for treatments Music1,Announcement1,Announcement2,CallbackOffer, Exit
  Use target selection object without any treatments inside and waiting time big enough to cover all involved treatments.
  Treatment Exit will make the target selection object quit through red port with error "-003 Exit"
  On this red port analyze was call back accepted or not.
  If not then reset busy treatment chain - invoke ResetBusyTreatments[], AddBusyTreatment for Music2,Announcement3,Announcement4,Exit
  and loop back to the target selection object
  If again exit happen on Exit Treatment - reset busy treatments back to the original set of busy treatments and loop back to target
  selection object, and so on.
 
  It is even possible to use single list of busy treatments (without splitting it into 2 sublists)
  But for that you need to check result of CallbackOffer from busy treatments "thread".
  Something like this:
  Use target selection object with busy treatments
      Music1,Announcement1,Announcement2,CallbackOffer,[b]PlayApplicationToCheckCallBack[/b],Music2,Announcement3,Announcement4.
  PlayApplicationToCheckCallBack here is a special busy treatment to verify whether the call back was accepted or not.
  It is PlayApplication treatment with parameters APP_ID set to URS and STRATEGY set to name of URS subroutine which check callback acceptance.
  Running such busy treatment will mean URS executes this subroutine and continues with next busy treatment,
  You must write it - check call back acceptance if yes, then it forces quitting from the target selection object by resetting busy treatments:
  ResetBusyTreatments[] followed with AddBusyTreatment Exit – it results chain of busy treatment will collapsing to single Exit treatment, which
  force quitting from the currently executed target selection object.

 
2  Use generic(combined) waiting function able to wait for different type of events
  Something like the following:
 
  - SelectDN[]
  - if exitting on red red port, then start playing Music1
  - ListRes= SuspendForAll[HowLongToWait, 'treatment,target', '']
      Function SuspendForAll will resume when whatever first happens: waiting time expires, target is found, treatment is over.
      Second paramter set which type of events to wait: here end of treatment and target selection.
      It returns the reason why exactly it happened and data associated with this reason (select target, for example)
  If it is because of treatment end, then start the next treatment and again use SuspendForAll, and so on.


55
Got this sorted.. For anyone interested, this approach worked for me:

Wherever I need to play an announcement and I don't know it's length, and I want the call to be routable while playing it:

1.  SelectDN
    - green port = route to agent
    - red port =goto 2
2. PlayAnnouncement (if not already started, do not check "wait for treatment end")
2. SuspendForTreatmentEnd[1] (waiting 1 sec or the announcement to finish)
5- red port = loop back to 1 to check free agents
6- green port = annoucement finished -> can move on in the strategy.

Need to check how much strain this puts on URS when checking the agent every 1 sec.

-Willian
56
Hello guys,

after a long time creating some routing in IRD, and I cannot seem to remember how to keep the call in routable state while playing treatments. My customer wants to have a queueing annoucement setup where they can set something like this:

Music1
Announcement1
Announcement2
CallbackOffer
Music2
Announcement3
Announcement4

Trying to figure out what's the easiest way to handle going to CallbackOffer because I don't know the length of Announcement1 and Annoucement2. Call needs to be in routable state even during the announcements, so I cannot just queue the call and use Play Announcement blocks. Is there some way I can combine SuspendForDN and SuspendForTreatmentEnd so that I know when to move to next block (EventTreatmentEnd arrives), but keep the call routable while waiting?

Thanks in advance!

Kind regards,

Willian
57
Genesys CTI Technical Discussion / Re: Using a voice bot as a treatment?
« Last post by rolf_b on September 05, 2024, 09:52:07 AM »
Thanks for your reply.

Yes, I defined SIP Header mapping. And I learned yesterday how to request a REFER instead of a re-INVITE by using Transfer-Type or by using enable-refer on the SBC for Cognigy, but SIP Server refuses to do that. There are still several gotchas that I need to check, probably I'm still doing something wrong here.

My hope is that by REFERing the call to Cognigy, the call can be REFERed back to me and SIP Server doesn't follow this with an INVITE (losing SIP Headers from the REFER on the way).

But all this sounds like a workaround because in principle the bot is some kind of external voice treatment, and so there might me a way to handle it as one.

Rolf
58
Genesys CTI Technical Discussion / Re: Using a voice bot as a treatment?
« Last post by Kubig on September 04, 2024, 03:21:19 PM »
Have you configured SIP header mapping? You can use Transfer-Type option to override the behavior of the transfer and decide whether use INVITE or REFER
59
Genesys CTI Technical Discussion / Using a voice bot as a treatment?
« Last post by rolf_b on September 04, 2024, 01:21:47 PM »
Hello

maybe I am phrasing this wrong, but I am in - for me - uncharted territory here.

My company intends to integrate an external Voicebot platform (Cognigy) into our on-premise installation (which will be dead after 2028, I know). These bots will be SIP integrated into our environment, there is a special Session Border Controller to which I route the call if I need the bot to take over. I use
[tt]TRoute['Phonebot001', '', RouteTypeDefault,''][/tt]
for this. The call goes to the Bot and the Bot talks with me. So far, so good. But maybe not, because the call is transferred via INVITE to the Bot, not via REFER (I don't know how to pass the call via REFER).

The problem is the way back. There are many cases where the bot needs to transfer the call back to Genesys, and in these cases, I need to get data back. We send the call back to a Routing Point, and we intend to use custom SIP Headers to transmit reference information. From Cognigy, the call is transferred back to Genesys via SIP REFER. In the log of our SIP Server, I find this REFER request, and it contains the custom headers. But this REFER Request is not used to create the next call leg. Instead, I find a new INVITE for the target routing point, and in this INVITE, the custom headers are lost. It's a new Call-ID on SIP Level, and from the Genesys perspective, this is a brand new call.

So I assume we are doing it wrong. What I [b]want[/b] to do is using the bot as a kind of voice treatment, but since this is Cognigy, I don't know how to do it correctly. Has anybody hints for me, or pointers to the relevant documentation?

Rolf
60
Genesys CTI Technical Discussion / Re: Getting Total Trunks with Genesys API
« Last post by Kubig on August 28, 2024, 02:56:00 PM »
As far as I know there is no other way how to get number of active (connected) trunks
Pages: 1 ... 4 5 [6] 7 8 ... 10