Nach Update auf 7.08 keine Inboundsignalisierung mehr

Hallo Community,

nach Update auf die neue Version 7.08 fehlt uns im XMPP bei einem Inboundanruf der Warteschlangenname bzw. deren Rufnummer. Wir nutzen diese Information um der Call Center Software zu signalisieren, um welche Warteschlange es sich handelt.

Vor dem Update war “<sourceCallerIdName>”, “<fromName>” und “<fromNumber>” sowie auch “<sourceName>” noch gefüllt:


08:51:59.004 	receive: <message xmlns="jabber:client" from="pubsub.mobydick" to="ccagent.32@mobydick/cti_ccagent.32" id="ahab.client.ccagent.32__ccagent.32@mobydick__5CK9v"><event xmlns="http://jabber.org/protocol/pubsub#event"><items node="ahab.client.ccagent.32"><item id="1413787918525"><cmd xmlns="http://www.pascom.net/mobydick" module="base">
        <ChannelEvent userName="ccagent.32">
          <eventType>ringing</eventType>
          <eventId>SIP/FdbHYIW7V76020a-0000309f</eventId>
          <eventDetails />
          <outbound>false</outbound>
          <internal>false</internal>
          <sourceName>0123456</sourceName>
          <sourceNumber>0049123456</sourceNumber>
          <sourceCallerIdName>Warteschlange 1</sourceCallerIdName>
          <targetName>Agent Max</targetName>
          <targetCallerIdName>Agent Max</targetCallerIdName>
          <targetNumber>32</targetNumber>
          <busySince>0</busySince>
          <refChannel />
          <device>Snom 00041376020a [TID-1317]</device>
          <fromName>Warteschlange 1</fromName>
          <fromNumber>52</fromNumber>
        </ChannelEvent>
      </cmd></item></items></event><header xmlns="http://jabber.org/protocol/shim"><headers name="pubsub#subid">M0X7f4eYmqmmNNsul7imzkdzAyFKq87wya7TmADK</headers></header></message>

Nach dem Update sind sie das nicht mehr:


08:37:08.353 	receive: <message xmlns="jabber:client" from="pubsub.mobydick" to="ccagent.32@mobydick/cti_ccagent.32" id="ahab.client.ccagent.32__ccagent.32@mobydick__G144o"><event xmlns="http://jabber.org/protocol/pubsub#event"><items node="ahab.client.ccagent.32"><item id="1413873427951"><cmd xmlns="http://www.pascom.net/mobydick" module="base">
        <ChannelEvent userName="ccagent.32">
          <eventType>ringing</eventType>
          <eventId>SIP/FdbHYIW7V76020a-000000f4</eventId>
          <eventDetails />
          <outbound>false</outbound>
          <internal>false</internal>
          <sourceName />
          <sourceNumber>0049123456</sourceNumber>
          <sourceCallerIdName />
          <targetName>Agent Max</targetName>
          <targetCallerIdName />
          <targetNumber>32</targetNumber>
          <busySince>0</busySince>
          <refChannel />
          <device>Snom 00041376020a [TID-1317]</device>
          <fromName />
          <fromNumber />
        </ChannelEvent>
      </cmd></item></items></event><header xmlns="http://jabber.org/protocol/shim"><headers name="pubsub#subid">a6b82Ny9zrfe52FaF1BvBywD26614a696AIu96dO</headers></header></message>

Beste Grüße
Sebastian

Hallo Sebastian,

danke für die Info. Dies scheint tatsächlich ein Problem zu sein. Die Entwicklung kümmert sich darum und die Felder “fromName” sowie “fromNumber” werden in der Bugfix Release 7.08.01 wieder gefüllt sein.
Das Feld “sourceName” ist ab jetzt nur noch gefüllt falls tatsächlich ein Name im Telefonbuch gefunden wurde. Der callerIdName aus dem Dialplan führte in Hinblick auf Manipulationen, Rufumleitungen etc. sehr oft zu Verwirrungen. Wir senden diesen künftig nicht mehr mit.

Anhand der XML-Auszüge sehe ich dass in dem System nach wie vor das “pubsub Eventing” genutzt wird, dieses wurde von uns bereits vor einigen Releases deprecated und durch ein leichtgewichtigeres Eventsystem abgelöst. Ihr solltet bei Gelegenheit auf das neue System, siehe https://www.pascom.net/doc-old/de/developer/xmpp-api/ , umsteigen. Es kann gut sein das wir den pubsub Support innerhalb von 1-2 Minor Releases (also in einem halben Jahr) komplett entfernen.

Gruß,

Thomas

Hallo Thomas,

danke für die schnelle Antwort.
Kannst du uns einen Termin für 7.08.01 nennen, sodass wir jetzt entscheiden können ob wir ein Downgrade durchführen oder das Bugfix abwarten?

Du hast natürlich recht, die Änderung des Eventsystems steht noch aus.

Beste Grüße
Sebastian

Hallo Sebastian,

wir haben derzeit glücklicherweise noch recht wenige konkrete Bugs für die 7.08.01 gemeldet bekommen. Ich denke das wir das Release erst Mitte bis spätestens Ende nächste Woche ausrollen.
Falls Ihr nicht dringend ein Feature der 7.08.00 braucht solltest Du zur 7.07.x wechseln.

Gruß,

Thomas

Hallo Thomas,

kurze Rückmeldung:
Nach erneuten Update nun auf 7.08.02.D17615 funktioniert auch die Inboundsignalisierung wieder.

Noch eine Frage zu den angesprochenen Event-Subscriptions:
Für unsere CTI-Lösung benötigen wir ja nur das absolut Mindeste an Events. Aktuell haben wir es mit statischen Subscription, sprich:


<iq type="get" id="agsXMPP_3">
  <cmd xmlns="http://www.pascom.net/mobydick" module="xmppuser">
    <ClientInfo>
      <AddSubscription>
        <Subscription module="base" type="*" scope="user" />
      </AddSubscription>
    </ClientInfo>
  </cmd>
</iq>

gelöst.
Hast du hierzu noch einen Optimierungsvorschlag? Beispielsweise finden sich noch immer sehr viele Zustandsmeldungen anderer User in den Logs, welche wir an dieser Stelle gar nicht benötigen. Oder verschiedene Events wie “ringing”, “busy” oder “hangup” werden zwei Mal “gemeldet”. Dazu ein kleines Beispiel eines typischen Inbound-Calls:


08:00:58.795 	receive: <message xmlns="jabber:client" from="pbx.mobydick" to="ccagent.111@mobydick/cti_ccagent.111">
  <cmd xmlns="http://www.pascom.net/mobydick" module="base">
    <ChannelEvent userName="ccagent.111">
      <eventType>ringing</eventType>
      <eventId>SIP/g2KiFkCyA745350-0000000a</eventId>
      <eventDetails />
      <outbound>false</outbound>
      <internal>false</internal>
      <sourceName />
      <sourceNumber>0049123412345</sourceNumber>
      <sourceCallerIdName />
      <targetName>Max Mustermann</targetName>
      <targetCallerIdName />
      <targetNumber>111</targetNumber>
      <busySince>0</busySince>
      <refChannel />
      <device>Snom 000411111111 [TID-0045]</device>
      <fromName>WARTESCHLANGE 1</fromName>
      <fromNumber>602</fromNumber>
    </ChannelEvent>
  </cmd>
</message>
08:00:58.795 	XMPP-Message: <message xmlns="jabber:client" from="pbx.mobydick" to="ccagent.111@mobydick/cti_ccagent.111">
  <cmd xmlns="http://www.pascom.net/mobydick" module="base">
    <ChannelEvent userName="ccagent.111">
      <eventType>ringing</eventType>
      <eventId>SIP/g2KiFkCyA745350-0000000a</eventId>
      <eventDetails />
      <outbound>false</outbound>
      <internal>false</internal>
      <sourceName />
      <sourceNumber>0049123412345</sourceNumber>
      <sourceCallerIdName />
      <targetName>Max Mustermann</targetName>
      <targetCallerIdName />
      <targetNumber>111</targetNumber>
      <busySince>0</busySince>
      <refChannel />
      <device>Snom 000411111111 [TID-0045]</device>
      <fromName>WARTESCHLANGE 1</fromName>
      <fromNumber>602</fromNumber>
    </ChannelEvent>
  </cmd>
</message>
08:00:58.826 	SIGNAL: ringing
08:01:02.982 	<< CMD(ping) {}
08:01:06.248 	<< CMD(fAnswerCall) {"REQID":"108000000003","TID":"8300","UID":"553"}
08:01:06.248 	send: <iq type="get" id="agsXMPP_21"><cmd xmlns="http://www.pascom.net/mobydick" module="phone"><Offhook /></cmd></iq>
08:01:06.623 	receive: <iq xmlns="jabber:client" to="ccagent.111@mobydick/cti_ccagent.111" type="result" id="agsXMPP_21"><cmd xmlns="http://www.pascom.net/mobydick" module="base">
  <Success>
    <message>Ok</message>
  </Success>
</cmd></iq>
08:01:06.826 	receive: <presence xmlns="jabber:client" from="ccagent.111@mobydick/phone" to="ccagent.111@mobydick/cti_ccagent.111"><priority>-10</priority><show>dnd</show><status>{"blf":"Phone busy","loc":"TID-0045"}</status></presence>
08:01:07.654 	receive: <message xmlns="jabber:client" from="pbx.mobydick" to="ccagent.111@mobydick/cti_ccagent.111">
  <cmd xmlns="http://www.pascom.net/mobydick" module="base">
    <ChannelEvent userName="ccagent.111">
      <eventType>busy</eventType>
      <eventId>SIP/g2KiFkCyA745350-0000000a</eventId>
      <eventDetails />
      <outbound>false</outbound>
      <internal>false</internal>
      <sourceName />
      <sourceNumber>0049123412345</sourceNumber>
      <sourceCallerIdName />
      <targetName>Max Mustermann</targetName>
      <targetCallerIdName />
      <targetNumber>111</targetNumber>
      <busySince>1415948467611</busySince>
      <refChannel />
      <device>Snom 000411111111 [TID-0045]</device>
      <fromName>WARTESCHLANGE 1</fromName>
      <fromNumber>602</fromNumber>
    </ChannelEvent>
  </cmd>
</message>
08:01:07.654 	XMPP-Message: <message xmlns="jabber:client" from="pbx.mobydick" to="ccagent.111@mobydick/cti_ccagent.111">
  <cmd xmlns="http://www.pascom.net/mobydick" module="base">
    <ChannelEvent userName="ccagent.111">
      <eventType>busy</eventType>
      <eventId>SIP/g2KiFkCyA745350-0000000a</eventId>
      <eventDetails />
      <outbound>false</outbound>
      <internal>false</internal>
      <sourceName />
      <sourceNumber>0049123412345</sourceNumber>
      <sourceCallerIdName />
      <targetName>Max Mustermann</targetName>
      <targetCallerIdName />
      <targetNumber>111</targetNumber>
      <busySince>1415948467611</busySince>
      <refChannel />
      <device>Snom 000411111111 [TID-0045]</device>
      <fromName>WARTESCHLANGE 1</fromName>
      <fromNumber>602</fromNumber>
    </ChannelEvent>
  </cmd>
</message>
08:01:07.654 	SIGNAL: busy
08:01:07.982 	<< CMD(ping) {}
08:01:12.983 	<< CMD(ping) {}
08:01:17.998 	<< CMD(ping) {}
08:01:22.998 	<< CMD(ping) {}
08:01:27.998 	<< CMD(ping) {}
08:01:32.999 	<< CMD(ping) {}
08:01:37.999 	<< CMD(ping) {}
08:01:43.014 	<< CMD(ping) {}
08:01:48.014 	<< CMD(ping) {}
08:01:53.015 	<< CMD(ping) {}
08:01:58.015 	<< CMD(ping) {}
08:02:02.999 	<< CMD(ping) {}
08:02:07.999 	<< CMD(ping) {}
08:02:12.999 	<< CMD(ping) {}
08:02:18.015 	<< CMD(ping) {}
08:02:21.390 	receive: <presence xmlns="jabber:client" from="ccagent.111@mobydick/phone" to="ccagent.111@mobydick/cti_ccagent.111"><priority>-10</priority><show>xa</show><status>{"blf":"Phone available","loc":"TID-0045"}</status></presence>
08:02:21.671 	receive: <message xmlns="jabber:client" from="pbx.mobydick" to="ccagent.111@mobydick/cti_ccagent.111">
  <cmd xmlns="http://www.pascom.net/mobydick" module="base">
    <ChannelEvent userName="ccagent.111">
      <eventType>hangup</eventType>
      <eventId>SIP/g2KiFkCyA745350-0000000a</eventId>
      <eventDetails />
      <outbound>false</outbound>
      <internal>false</internal>
      <sourceName />
      <sourceNumber>0049123412345</sourceNumber>
      <sourceCallerIdName />
      <targetName>Max Mustermann</targetName>
      <targetCallerIdName />
      <targetNumber>111</targetNumber>
      <busySince>1415948467611</busySince>
      <refChannel />
      <device>Snom 000411111111 [TID-0045]</device>
      <fromName>WARTESCHLANGE 1</fromName>
      <fromNumber>602</fromNumber>
    </ChannelEvent>
  </cmd>
</message>
08:02:21.671 	XMPP-Message: <message xmlns="jabber:client" from="pbx.mobydick" to="ccagent.111@mobydick/cti_ccagent.111">
  <cmd xmlns="http://www.pascom.net/mobydick" module="base">
    <ChannelEvent userName="ccagent.111">
      <eventType>hangup</eventType>
      <eventId>SIP/g2KiFkCyA745350-0000000a</eventId>
      <eventDetails />
      <outbound>false</outbound>
      <internal>false</internal>
      <sourceName />
      <sourceNumber>0049123412345</sourceNumber>
      <sourceCallerIdName />
      <targetName>Max Mustermann</targetName>
      <targetCallerIdName />
      <targetNumber>111</targetNumber>
      <busySince>1415948467611</busySince>
      <refChannel />
      <device>Snom 000411111111 [TID-0045]</device>
      <fromName>WARTESCHLANGE 1</fromName>
      <fromNumber>602</fromNumber>
    </ChannelEvent>
  </cmd>
</message>
08:02:21.671 	SIGNAL: hangup

Beste Grüße
Sebastian

Hi Sebastian,

It should not happen that you receive duplicate events. If you have subscribed like in your example, you should receive only one event per device. So I think in example your logger prints output twice for same event “08:00:58.795 receive:” and "08:00:58.795 XMPP-Message: ".

I will try to explain what you will receive on one simple example

User A has 2 devices.

  1. His phones are ringing. He receives
    -ringing event for device1
    -ringing event for device2

2 If userA answers the call on device1, he will receive
-hangup event for device2
-busy event for device1

  1. On the end of phone call he receives
    -hangup event for device1

In the current state you can not avoid standard xmpp stanzas (presence and ping packets). Our subscription logic filters only packets with subelement “cmd” and namespace http://www.pascom.net/mobydick.

What are you using to connect to server? Maybe this library offers you possibility to attach iq or package-extension providers?

Kind regards,
Stefan