首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何asdd调用attrs。在电话掉线后就像标记完成按钮一样?

如何asdd调用attrs。在电话掉线后就像标记完成按钮一样?
EN

Stack Overflow用户
提问于 2019-04-15 21:13:29
回答 3查看 64关注 0票数 0

当通话在线时,我可以使用'Genesyslab.Platform.Voice.Protocols.TServer.Requests.Userdata.RequestAttachUserData‘添加通话属性,但当通话掉线时该如何操作?

我在WDE里找到了这个

代码语言:javascript
复制
void SelectDispositionCodeSetAttachedData(string dispositionCodeValueName);
    //
    // Summary:
    //     Update or add the keys of the specificed KeyValueCollection in the attached data
    //     of the interaction . The current list of attached data can then be retrieved
    //     using GetAttachedData. If the interaction media type is 'voice' or 'instant message'
    //     and the interaction is not released the added/updated values are immediately
    //     committed to T/SIP Server. If the interaction media type is 'voice' or 'instant
    //     message' and the interaction is released the added/updated values are sent to
    //     T/SIP Server as a UserEvent when the interaction is marked done (programmatic?aly
    //     or by Agent). If it is an eServices interaction (e-mail, chat, etc.) and the
    //     interaction is still handled by the agent the added/updated values are immediately
    //     committed to Interaction Server. After e-Services interaction is released, no
    //     further programmatical update is committed to Interaction Server. For all interaction
    //     types any attached data programmatical update applied after interaction release
    //     is not reflected in UI controls such as 'Case information'.

这是我的代码:

代码语言:javascript
复制
Genesyslab.Platform.Commons.Collections.KeyValueCollection keyValueCollectionUpDate = new Genesyslab.Platform.Commons.Collections.KeyValueCollection();
                keyValueCollectionUpDate.Add("Business Result", "Platform: Business Result");
                keyValueCollectionUpDate.Add("StrAttribute1", "AttachedData.Business Result"); RequestAttachUserData requestAttachUserData= RequestAttachUserData.Create("7012", GetConnectionID(ExtractedArtributes[1][0].Value.ToString()), keyValueCollectionUpDate); IMessage respondingEvent2=tserverProtocol.Request(requestAttachUserData);

需要在呼叫掉线后添加呼叫提示

EN

回答 3

Stack Overflow用户

发布于 2019-04-18 15:43:06

当呼叫掉线时,您无法更新附加数据。

票数 0
EN

Stack Overflow用户

发布于 2019-04-18 19:14:23

我做了一个变通办法,当代理在WDE自定义命令中单击“标记完成”时,使用WDE本身附加数据。

票数 0
EN

Stack Overflow用户

发布于 2021-10-07 09:28:29

在断开连接后将数据附加到语音呼叫的方法是发送UserEvent。这要求在您的环境中启用AfterCallWork状态。您已经提到了解如何将命令插入到命令链中。命令的这个示例Execute函数可以插入到"BundleClose“命令链中,在"Close”命令之前。

此示例是用VB编写的,很抱歉,但我猜你可以很容易地转换成c#。

代码语言:javascript
复制
Public Function Execute(ByVal parameters As IDictionary(Of String, Object), ByVal progress As IProgressUpdater) As Boolean Implements IElementOfCommand.Execute
    ' To go to the main thread
    If Application.Current.Dispatcher IsNot Nothing AndAlso Not Application.Current.Dispatcher.CheckAccess() Then
        Dim result As Object = Application.Current.Dispatcher.Invoke(DispatcherPriority.Send, New ExecuteDelegate(AddressOf Execute), parameters, progress)
        Return CBool(result)
    Else

        Dim interactionsBundle As IInteractionsBundle = Nothing
        Dim interaction As IInteraction = Nothing
        interactionsBundle = parameters("CommandParameter")
        interaction = interactionsBundle.MainInteraction

        Dim channel As Enterprise.Model.Channel.IClientChannel = interaction.EntrepriseInteractionCurrent.ActiveChannel 'agent.Channel
        Dim protocol As IProtocol = channel.Protocol

        Dim kvp As Platform.Commons.Collections.KeyValueCollection = New Platform.Commons.Collections.KeyValueCollection()
        kvp.Add("keyname", "keyvalue")

        Dim userevent As Platform.Voice.Protocols.TServer.CommonProperties = Platform.Voice.Protocols.TServer.CommonProperties.Create()
        userevent.UserData = kvp

        Dim connID As Platform.Voice.Protocols.ConnectionId = Nothing

        Dim interactionVoice as IInteractionVoice = TryCast(interaction, IInteractionVoice)

        If interactionVoice IsNot Nothing Then
            userevent.UserEvent = Platform.Voice.Protocols.TServer.Events.EventUserEvent.MessageId
            connID = New Platform.Voice.Protocols.ConnectionId(interactionVoice.TConnectionId)
            
            Dim strDN As String = Nothing
            'ensure the correct DN is passed when attaching reason codes, in case agent is logged into multiple DNs
            Dim devices() As Enterprise.Model.Device.IDevice = interactionVoice.Device
            Dim device As Enterprise.Core.DN = devices(0)
            strDN = device.Name
            userevent.ThisDN = strDN
            userevent.ConnID = connID

            Dim req = Platform.Voice.Protocols.TServer.Requests.Special.RequestSendEvent.Create()
            req.UserEvent = userevent

            'send request
            protocol.Send(req)  

        End If
    End If
    
End Function
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55689993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档