" /> Use ANI of inbound call on Instant Conference Transfer on external trunk - Genesys CTI User Forum

Author Topic: Use ANI of inbound call on Instant Conference Transfer on external trunk  (Read 3088 times)

Offline Anrew Livingston

  • Newbie
  • *
  • Posts: 15
  • Karma: 0
Advertisement
Scenario:
Agent handles inbound call, uses Instant Call Conference to an external resource using a single-step conference trunk.  Need to be able to send the ANI of that original call to the external party.

When we do internal transfers, the recipient of the conference sees the ANI of the inbound caller, just need that to work on external transfers.

TServer/enable-ssc-network
TServer
enable-ssc-network
true

TServer/oosp-transfer-enabled
true

TServer/override-from-on-conf
false

TServer/prefix
6

TServer/priority
1

TServer/refer-enabled
true

TServer/reuse-sdp-on-reinvite
true

TServer/session-refresh-enforced
false

TServer/sip-disable-greeting
false

TServer/sip-hold-rfc-3264
false

TServer/subscribe-presence-expire
3600

TServer/use-display-enabled
true

If the DN that handled the call is 8340 for example if I set override-from-on-conf = true then the callerID on the receiving end shows 8340, but that's as much success as I've had.
Anybody have an idea on how to make this work?

Offline cavagnaro

  • Administrator
  • Hero Member
  • *****
  • Posts: 7641
  • Karma: 56330
Depends on your PBX/MediaGateway/Operator configuration. Does your Telco allows you to send those numbers??

Offline Anrew Livingston

  • Newbie
  • *
  • Posts: 15
  • Karma: 0
So the solution is that you have to set CPNDigits = ANI in the Extensions of the TSingleStepTransfer (or Conference).  This can be done in routing, but when it's initiated from the agent desktop (Workspace Desktop 8.5.1 in our case), you have to create a custom command and insert it before InteractionVoiceSingleStepTransfer.

[code]
public bool Execute(IDictionary<string, object> parameters, IProgressUpdater progress)
  {
            log.DebugFormat("BeforeSingleStepTransfer.Execute(): add CPNDigits");
  IInteractionVoice interactionVoice = parameters["CommandParameter"] as IInteractionVoice;
            object data = null;
            Genesyslab.Enterprise.Commons.Collections.KeyValueCollection ext = null;
            parameters.TryGetValue("Extensions", out data);
            try
            {
                if (data == null)
                {
                    ext = new Genesyslab.Enterprise.Commons.Collections.KeyValueCollection();
                }
                else
                {
                    ext = data as Genesyslab.Enterprise.Commons.Collections.KeyValueCollection;
                }
                ext.Add("CPNDigits", interactionVoice.PhoneNumber;
    parameters["Extensions"] = ext;
            }
            catch (Exception e)
            {
                log.DebugFormat("BeforeSingleStepTransfer.Execute():" + Environment.NewLine + e.StackTrace);
                return true;
            }
            return false;
  }
 
Add the command into the chain in the module's Initialize() method:

        commandManager.InsertCommandToChainOfCommandBefore("InteractionVoiceSingleStepTransfer", "SingleStepTransfer",
            new CommandActivator() { CommandType = typeof(BeforeVoiceSingleStepTransferCommand) });

[/code]