Quantcast
Channel: BroadSoft Xtended Developers Program.
Viewing all 298 articles
Browse latest View live

Is there any way to extract IPDR information via XSI api


XSI-Events Implementation in Python

$
0
0

I'm working on building a Python class (or classes) that implement the XSI-Actions and XSI-Events API's. I'm getting reasonable resposnes against the Sandbox for some of the Actions, but I'm getting Internal Server Errors when I try to register for an Events Channel and trying to work with async notifications.  The 500 Internal Server Errors are only cropping up in the Sandbox envrionment - the code I'll be posting (at least with respect to the creation of Events Channels) works against the deployed version from our phone provider.  Their system, however, has other problems (namely, I can't look up created Channels or reference my ChannelSet at present) so they're looking into those issues for me.  I'd presume (however naively) that the code I'm writing ought to work against the Sandbox and against the live system, so I'm posting it here so I can try to get some additional assistance and am not unproductive while waiting for my provider to fix their deployment.

As all of this API is being retrieved over HTTP, the classes need to start there.In Python we end up with something like this as a starting basis:

 class EventsChannel(object):
   def Connection(self, host, port = 443):
    Klass = httplib.HTTPConnection if port == 80 else httplib.HTTPSConnection
    debug("Connecting to %s on %d" % (host, port))
    conn = Klass(host, port)
    conn.request('HEAD', '', headers = EventsChannel.headers)
    res = conn.getresponse()
    debug('Status: %d  Reason: %s' % (res.status, res.reason))
    if res.status in (301, 302):
      debug("Redirecting to %s" % res.getheader('location'))
      newhost = proto.sub('', res.getheader('location').rstrip('/'))
      conn = self.Connection(*urllib.splitnport(newhost, port))
    if res.status in (200,):
      conn = Klass(host, port)
    return conn

This method allows me to request connections, preferably secure, to a server.  There's some extra work involved to handle redirects, as well as a final re-creation of the connection that seemed necessary only when connecting to the Sandbox.  I actually think that's related to the error I get a few calls later, when I do this:

  def make_conduit(self):
    # Build up the XML Content for the Event Conduit.
    XML = Document()
    channel = XML.createElement('Channel')
    channel.setAttribute('xmlns', schema)
    props = [('channelSetId', self.csid),
             ('priority', '1'),
             ('weight', '50'),
             ('expires', '3600')]
    for name, val in props:
      elem = XML.createElement(name)
      elem.appendChild(XML.createTextNode(val))
      channel.appendChild(elem)
    XML.appendChild(channel)
    body = XML.toxml()
    print XML.toprettyxml()

    # Create the connection and POST to open the channel.
    return self.post(self.url(async, events, version, 'channel'), body)

  def post(self, url, body, connection = None):
    if connection is None:
      connection = self.Connection(baseurl)
    headers = EventsChannel.headers.copy()
    headers['Content-Length'] = '%d' % len(body)
    connection.request('POST', url, '', headers)
    connection.send(body)
    return connection.getresponse()

The methods here are responsible for building the XML Body that will be posted to create an Events Channel and return an HTTPResponse that I can read events from.  This code worked against my Provider's deployment, but does not work against the Sandbox.  The XML Content that gets POSTed looks like this when printed with reasonable formatting:

<?xml version="1.0" ?>
<Channel xmlns="http://schema.broadsoft.com/xsi">
    <channelSetId>c464e68f-6714-11e2-81d1-08002700c0e6</channelSetId>
    <priority>1</priority>
    <weight>50</weight>
    <expires>3600</expires>
</Channel>

That's generated as per the API Documentation I can find.  Posting that content to the Sandbox produces a 500 Internal Server Error.

The only other method I think that's called in this demo code is this one:

  def url(self, *args):
    return '/'.join(itertools.chain([''], args))

And that's just a convenience method for putting together urls.  I've defined the following constants as well:

async = 'com.broadsoft.async'
actions = 'com.broadsoft.xsi-actions'
events = 'com.broadsoft.xsi-events'
schema = 'http://schema.broadsoft.com/xsi'
version = 'v2.0'
proto = re.compile('^https?://')

# These values for Sandbox Environment.
baseurl = 'xsp2.xdp.broadsoft.com'
user = >>myuser<<
pwd = >>mypwd<<

Those constants make for easy generation of dynamic urls.  Finally, as a way to test that I'm accessing the API even close to correctly, I added methods to retrieve a user profile:

  def get(self, url):
    C = self.Connection(baseurl)
    C.request('GET', url, '', EventsChannel.headers)
    return C.getresponse()

  def getuserprofile(self, userid):
    return self.get(self.url(actions, version, 'user', userid, 'profile'))

Those seem to work, and provide me the following JSON Response:

{u'Profile': {u'@xmlns': {u'$': u'http://schema.broadsoft.com/xsi'},
              u'additionalDetails': {},
              u'countryCode': {u'$': u'1'},
              u'details': {u'extension': {u'$': u'8220'},
                           u'firstName': {u'$': u'gddc_brooksnet'},
                           u'groupId': {u'$': u'gddc_brooksnetGroup'},
                           u'lastName': {u'$': u'User1'},
                           u'number': {u'$': u'2401008220'},
                           u'serviceProvider': {u'$': u'gddc_brooksnetEnt',
                                                u'@isEnterprise': u'true'},
                           u'userId': {u'$': u'gddc_brooksnetUser1@xdp.broadsoft.com'}},
              u'fac': {u'$': u'/v2.0/user/gddc_brooksnetUser1@xdp.broadsoft.com/profile/Fac'},
              u'passwordExpiresDays': {u'$': u'2147483647'},
              u'portalPasswordChange': {u'$': u'/v2.0/user/gddc_brooksnetUser1@xdp.broadsoft.com/profile/Password/Portal'},
              u'registrations': {u'$': u'/v2.0/user/gddc_brooksnetUser1@xdp.broadsoft.com/profile/Registrations'},
              u'scheduleList': {u'$': u'/v2.0/user/gddc_brooksnetUser1@xdp.broadsoft.com/profile/Schedule'}}}

I take the success of the simple GET Requests (along with the almost success against my providers servers) to mean that I'm close, but again, can't test further because of the 500 Internal Server Error I get when attempting to create the Events Channel on the Sandbox Server.

Unexpected ChannelTerminated - Sandbox 500

$
0
0

I'm (still) working on building a Python application that implements the XSI-Events and XSI-Actions interface.  I'm running into some really, really odd behavior and am hoping someone can help.  I've managed to create an EventsChannel, subscribe for events, and I've setup a heartbeat on a 10 second interval (best practice suggestions there, btw?  Is 10 seconds appropriate?  More / less frequent?)



So that's all promising.  I'm registering for Advanced Call events on our Enterprise.  That seems to work.  I get a Subscription ID.  Events seem to come through.  They each have Event IDs.  That's all appropriate.  The spec calls for EventResponses for each Event, sent over a separate conneciton, referencing the Event ID.  The EventResponses POST's should get 200 OK's with no body.  That's working (as far as I can tell anyway).  Things are seemingly in really solid operating state.  Then I get a ChannelTerminatedEvent over my Channel for no reason I can identify.  I'm including some of the logs and timestamps of what I'm sending, receiving, etc.  Thanks.

>>> e = EventsChannel()
2013-02-05 10:18:55.293000 ('<?xml version="1.0" ?><Channel xmlns="http://schema.broadsoft.com/xsi"><channelSetId>1cbcd861-6fb8-11e2-a715-08002700c0e6</channelSetId><priority>1</priority><weight>50</weight><expires>3600</expires></Channel>',)
2013-02-05 10:18:55.293000 ('/com.broadsoft.async/com.broadsoft.xsi-events/v2.0/channel',)
2013-02-05 10:18:55.293000 ('Connecting to xsp1.telesphere.com on 443',)
2013-02-05 10:18:55.293000 ({'Content-Length': '210', 'Content-Type': 'application/xml', 'Accept': 'application/json', 'Authorization': 'Basic >>> My Auth <<<'},)
2013-02-05 10:18:56.042000 ('<?xml version="1.0" ?><Channel xmlns="http://schema.broadsoft.com/xsi"><channelSetId>1cbcd861-6fb8-11e2-a715-08002700c0e6</channelSetId><priority>1</priority><weight>50</weight><expires>3600</expires></Channel>',)
2013-02-05 10:18:56.226000 (u'/com.broadsoft.xsi-events/v2.0/channel/7139d92a-556d-49e1-a852-90e79c50be22/heartbeat',)
2013-02-05 10:18:56.226000 ('Connecting to xsp1.telesphere.com on 443',)
2013-02-05 10:18:58.480000 ('Heartbeat Received.',)
>>> e.bisisubscribe().read()
2013-02-05 10:19:02.969000 ('/com.broadsoft.xsi-events/v2.0/enterprise/BISI',)
2013-02-05 10:19:02.970000 ('Connecting to xsp1.telesphere.com on 443',)
2013-02-05 10:19:02.970000 ({'Content-Length': '274', 'Content-Type': 'application/xml', 'Accept': 'application/json', 'Authorization': 'Basic >>> My Auth <<<'},)
2013-02-05 10:19:03.247000 ('<?xml version="1.0" ?><Subscription xmlns="http://schema.broadsoft.com/xsi"><event>Advanced Call</event><expires>3600</expires><channelSetId>1cbcd861-6fb8-11e2-a715-08002700c0e6</channelSetId><applicationId>23322291-6fb8-11e2-85b0-08002700c0e6</applicationId></Subscription>',)
'{"Subscription":{"@xmlns":{"$":"http:\\/\\/schema.broadsoft.com\\/xsi"},"subscriptionId":{"$":"b4825748-bd62-4906-b824-c77f52384f52"},"expires":{"$":"3600"}}}'
2013-02-05 10:19:06.597000 (u'/com.broadsoft.xsi-events/v2.0/channel/7139d92a-556d-49e1-a852-90e79c50be22/heartbeat',)
2013-02-05 10:19:06.597000 ('Connecting to xsp1.telesphere.com on 443',)
2013-02-05 10:19:07.230000 ('Heartbeat Received.',)
--- --- several more redundant heartbeats mixed throughout ---
--- Then Events start taking place.  They all look like this ---
2013-02-05 10:20:07.730000 ('<?xml version="1.0" encoding="UTF-8"?>\n<xsi:Event xsi1:type="xsi:SubscriptionEvent" xmlns:xsi="http://schema.broadsoft.com/xsi" xmlns:xsi1="http://www.w3.org/2001/XMLSchema-instance"><xsi:eventID>85a1f3db-2521-4956-883e-835640afd31d</xsi:eventID><xsi:sequenceNumber>1</xsi:sequenceNumber><xsi:userId>bisiadmin@voip.tnltd.net</xsi:userId><xsi:externalApplicationId>23322291-6fb8-11e2-85b0-08002700c0e6</xsi:externalApplicationId><xsi:subscriptionId>b4825748-bd62-4906-b824-c77f52384f52</xsi:subscriptionId><xsi:channelId>7139d92a-556d-49e1-a852-90e79c50be22</xsi:channelId><xsi:targetId>bisi0201@voip.tnltd.net</xsi:targetId><xsi:eventData xsi1:type="xsi:CallReleasedEvent"><xsi:call><xsi:callId>callhalf-4016177423:0</xsi:callId><xsi:extTrackingId>8097733:1</xsi:extTrackingId><xsi:personality>Terminator</xsi:personality><xsi:state>Released</xsi:state><xsi:releasingParty>localRelease</xsi:releasingParty><xsi:remoteParty><xsi:address countryCode="1">tel:+18649431626</xsi:address><xsi:callType>Network</xsi:callType></xsi:remoteParty><xsi:startTime>1360084676890</xsi:startTime><xsi:answerTime>1360084681519</xsi:answerTime><xsi:releaseTime>1360084807555</xsi:releaseTime></xsi:call></xsi:eventData></xsi:Event>',)
2013-02-05 10:20:07.732000 ('Responding to event', '85a1f3db-2521-4956-883e-835640afd31d')
2013-02-05 10:20:07.732000 ('/com.broadsoft.xsi-events/v2.0/channel/eventresponse',)
2013-02-05 10:20:07.733000 ('Connecting to xsp1.telesphere.com on 443',)
2013-02-05 10:20:07.733000 ({'Content-Length': '211', 'Content-Type': 'application/xml', 'Accept': 'application/json', 'Authorization': 'Basic >>> My Auth <<<'},)
2013-02-05 10:20:08.009000 ('<?xml version="1.0" encoding="UTF-8"?><EventResponse xmlns="http://schema.broadsoft.com/xsi"><eventID>85a1f3db-2521-4956-883e-835640afd31d</eventID><statusCode>200</statusCode><reason>OK</reason></EventResponse>',)
2013-02-05 10:20:08.178000 (200, '')
--- Each Event has an OK Response sent, and for each one I log the 200 OK and the empty body ---
--- Things continue normally for an indeterminate length of time, then I see this ---
2013-02-05 10:21:05.740000 ('<?xml version="1.0" encoding="UTF-8"?>\n<xsi:Event xsi1:type="xsi:SubscriptionEvent" xmlns:xsi="http://schema.broadsoft.com/xsi" xmlns:xsi1="http://www.w3.org/2001/XMLSchema-instance"><xsi:eventID>9de25736-6300-4632-8713-09a6ffd9ee23</xsi:eventID><xsi:sequenceNumber>16</xsi:sequenceNumber><xsi:userId>bisiadmin@voip.tnltd.net</xsi:userId><xsi:externalApplicationId>23322291-6fb8-11e2-85b0-08002700c0e6</xsi:externalApplicationId><xsi:subscriptionId>b4825748-bd62-4906-b824-c77f52384f52</xsi:subscriptionId><xsi:channelId>7139d92a-556d-49e1-a852-90e79c50be22</xsi:channelId><xsi:targetId>bisi0201@voip.tnltd.net</xsi:targetId><xsi:eventData xsi1:type="xsi:CallForwardedEvent"><xsi:call><xsi:callId>callhalf-4016232617:1</xsi:callId><xsi:extTrackingId>8100087:1</xsi:extTrackingId><xsi:personality>Originator</xsi:personality><xsi:state>Alerting</xsi:state><xsi:remoteParty><xsi:name>Daniel Casper</xsi:name><xsi:address>tel:202</xsi:address><xsi:userId>bisi0202@voip.tnltd.net</xsi:userId><xsi:userDN countryCode="1">tel:+12089321268;ext=202</xsi:userDN><xsi:callType>Group</xsi:callType></xsi:remoteParty><xsi:endpoint xsi1:type="xsi:AccessEndpoint"><xsi:addressOfRecord>201@proxy.bisi.tnltd.net</xsi:addressOfRecord></xsi:endpoint><xsi:appearance>2</xsi:appearance><xsi:startTime>1360084847195</xsi:startTime></xsi:call></xsi:eventData></xsi:Event>',)
2013-02-05 10:21:05.742000 ('Responding to event', '9de25736-6300-4632-8713-09a6ffd9ee23')
2013-02-05 10:21:05.742000 ('/com.broadsoft.xsi-events/v2.0/channel/eventresponse',)
2013-02-05 10:21:05.742000 ('Connecting to xsp1.telesphere.com on 443',)
2013-02-05 10:21:05.743000 ({'Content-Length': '211', 'Content-Type': 'application/xml', 'Accept': 'application/json', 'Authorization': 'Basic >>> My Auth <<<'},)
2013-02-05 10:21:06.026000 ('<?xml version="1.0" encoding="UTF-8"?><EventResponse xmlns="http://schema.broadsoft.com/xsi"><eventID>9de25736-6300-4632-8713-09a6ffd9ee23</eventID><statusCode>200</statusCode><reason>OK</reason></EventResponse>',)
2013-02-05 10:21:06.195000 (200, '')
2013-02-05 10:21:07.945000 ('<?xml version="1.0" encoding="UTF-8"?>\n<xsi:Event xsi1:type="xsi:ChannelTerminatedEvent" xmlns:xsi="http://schema.broadsoft.com/xsi" xmlns:xsi1="http://www.w3.org/2001/XMLSchema-instance"><xsi:channelId>7139d92a-556d-49e1-a852-90e79c50be22</xsi:channelId></xsi:Event>',)
--- End of Log ---

The logs are a bit verbose, and not the most ideally formatted for this forum, but at this point I figure more information is better than less.  So, the EventChannelTerminated event is completely unexpected and shows up 1.8 seconds after I sent the most recent Event Response.


The other issue I'm having is when I attempt to connect to the Sandbox using the same code that establishes a working connection against my Provider's server.  When I change my connection parameters to point to the Sandbox Server I receive a 500 Internal Server Error in response to my initial request to create the Channel.



Thanks for any feedback.  Please let me know if I can provide any additional information to assist in troubleshooting.

Any "Recipe" docs for processing low level call events into CRM useful data? (handling inbound call queues etc)

$
0
0

 

 

Is there any documentation which provides application level “recipes" for how to take the low level call events XSI provides and process them effectively for a CRM integration (log calls, provide popups).  Tracking outbound calls is pretty straightforward.  Processing inbound simultaneous ring, call queues, and follow me are a whole other animal… you end up with state machines to distill the various legs of the call into a single final call which would get logged in say a CRM.

I’m hoping to to avoid reinventing the wheel… Writing tooling to log every type of call scenario and then subsequently develop algorithms to process. 

If anyone out there has done such a thing and is available for hourly consulting work.  I'd be interested.

OCI over SOAP with Java Spring WebServiceTemplate

$
0
0

I'm trying to write a web servce client to connect to a broadworks server. I have tried several different means to connect some semi-successful other not. I'm currently trying to use Java spring's WebServiceTemplate to access the OCI over SOAP. I get a SAXException to do with deserialization. Maybe some on from the community has done this and can give me some pointers below is the code, message sent, and exception.

CODE

String sessionId = new SessionIdentifierGenerator().nextSessionId();

OCIMessage message = oFactory.createOCIMessage();

message.setSessionId(sessionId);

message.setProtocol("OCI");

AuthenticationRequest authReq = oFactory.createAuthenticationRequest();

authReq.setUserId(userId);

message.getCommand().add(authReq);

//Breaks on the line below

OCIMessage response = (OCIMessage) webServiceTemplate.marshalSendAndReceive(oFactory.createBroadsoftDocument(message));
AuthenticationResponse authResponse = (AuthenticationResponse) response.getCommand().get(0);

MESSAGE SENT 

 <ns2:BroadsoftDocument protocol="OCI" xmlns:ns2="C">

    <sessionId>b014tbb5n3906orso9h86bvnht</sessionId>

    <command xsi:type="AuthenticationRequest" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

        <userId>admin</userId>

    </command>

</ns2:BroadsoftDocument>

ERROR MESSAGE

org.springframework.ws.soap.client.SoapFaultClientException: org.xml.sax.SAXException: Deserializing parameter 'command':  could not find deserializer for type AuthenticationRequest  

Is there any documentation for CTI just like XSI?

$
0
0

Dear All,

 Am searching for CTI documentation just like http://developers.broadsoft.com/Xsi/Documents. Is there any documentation to get the complete information about the CTI including login process, action and event subscription.

Thank you so much

Amith 

 

 

 

 

 

 

 

 

Is it possible to rmove MACAddress from GroupAccessDevice

Get enterprise name and group name via xsi?

$
0
0

Does anyone know if an xsi command or combination of commands exist to get the enterprise name and group name for a user?  I got the enterprise id from a user profile command, and the groupid was in the enterprise directory command.  Is there a command I can use that will accept the enterpriseid/groupid and return the name or something?


DNS Load Balancing Application Servers

$
0
0

Hello,

 I am developing applications for XSI, specially call control functionality using XS-Events.

My question relates to DNS load balancing of external facing XSI hostnames.

My test app opens and maintains an XSI-Events session
successfully and I receive subscription events as I would expect. The problem
however is with the heartbeat that is used to maintain the channel.

The service provider uses a single hostname for xsi-events with
a DNS TTL of 30 seconds. Because the XSI API requires that a heartbeat is to be sent on a new and
independent http(s) connection, the app will do a name lookup on the xsi
hostname. When the IP address behind the hostname changes, the heartbeat will
fail with ‘channel not found’. I assume this is because the environment is load balancing between two independant platforms.

How should a service provider properly structure application servers hosting XSI, in order to provide a fully redundant environment? Can the application servers be clustered, or share session data to ensure that an XSI channel that is open on one is accessible by the alternate XSI server? 

 Thank you,

 David 

Call Center call timestamp inaccuracy

$
0
0

I am using the xsi events API to get a list of calls from a callcenter (/callcenter/<ccid>/calls) and I believe sometimes it works normal, but other times the timestamp I get <addTime>1391697691862</addTime> will be 35 seconds earlier than it should be. For instance, if I call into the queue at 10:50:48 the timestamp I get from the API will immediately be showing as 10:50:13, with a calculated elapsed time of 35 seconds. then when I terminate the call and look up the call in the call report, it will be listed with the correct start time and elapsed time, not the same as what xsi gave me. Does anyone have any idea why this is happening? 

Where is the target page of "user the XSI" link in the Welcome page?

$
0
0

I am quite new to Broadsoft and XSI and was reading through the "read on" in the welcome page.

There is a link to how to use the xsi at the end of the tex but when I click on it, it shows a page saying the page is not found. Is the "user XSI" page still available? 

Thank you! 

VXML script not retrieved/running

$
0
0

I am trying to run a simple VXML dialog in the Sandbox, but the media server is not retrieving the file from my web server.

My group User1 is configured per the documentation with:

- Device: BroadWorks Media Server (System)

- Contact: dialog@ms1.xdp.broadsoft.com;voicexml=http://-----/prompt.xml

First of all, is the media server ("ms1.xdp.broadsoft.com") correct?  That is from the Sandbox docs and I believe it did work the last time I was testing (2 months ago). 

When I call User1 from another user (User2) I see in the basic logs that are available that User2 placed a call but User1 missed the call.  I'm not sure what this means, technically.  Are there any other logs that provide better call detail in order to debug what is happening?

My web server's logs show that no attempt was made to retrieve the file. 

Any idea as to why this doesn't work?  I'm a BroadWorks newbie so any help would be appreciated.

Change users outgoing calling plan for 'call me now' option using OCI-P

$
0
0

I am trying to change the user permissions on their outgoing
calling plan using the OCI-P API interface. I have been able to do so with the
users Originating, Redirecting and Redirected tabs but cannot find an equivalent
OCI-P call for the ‘Call me now’ tab. The calls used to change the others are; UserOutgoingCallingPlanOriginatingModifyRequest,
UserOutgoingCallingPlanRedirectingModifyRequest, and UserOutgoingCallingPlanRedirectingModifyRequest
but what is the call to change the ‘Call Me Now’ tab?

XSI Events for Advanced Call not working!

$
0
0

Hi There.
I am trying to subscribe to XSI Events for Advanced Call Events. But the issue is that, it does not send me events for call answered and call received state. The only events its sends are Susbscribed and then the Call Ended/Terminated events. This is the XML am using:

https://www.dropbox.com/s/p87dg616fkm6edg/bsoft_xsi_question.txt

Is there any way i can kill all the active subscriptions and subscribe again?
Thanks,
Shriram

Interpretting Country Code in XSI Address

$
0
0

My company recently began taking Internatinal calls within the sales group but I have noticed that the remote party adress element does not indicate the incoming n umber is from an international party. An example of an adress element is:

 

 

 

<xsi:addresscountryCode="1">tel:+1656551111</xsi:address>



 

 

I changed the orginal number except for where the area code normally is (656), This is a confirmed international number so what I was expecting to see in the record was something more like this:

 

 

<xsi:addresscountryCode="65">tel:+1656551111</xsi:address>



 

 

I confirmned that singapore is country code 65 thus I am presented with challenge to detect properly that I can handle this as international and display the call to a user in an international format.

 

The challenge here is that I cannot differentiate between a US national call and international based upon what the record provides. Can someone please point me in the ocrrect direction tio get the details on how to interpret the address record properly for international calls?

 

Thank you in advance for any assistance that you can provide.

 

 

 


Can you please advise on any documentation available in relation to extracting CDR files via the XSI interface?

Registration Data of phones API

$
0
0

Hello
In the AS is there is a command AS_CLI/System/Registration/Contacts> get system ==> this gives out the registration data of all the phones alive in the system.
Is there any provision in OCI or XSI to accomplish this via an API?
Thanks
Shriram

"ACD Agent Join Update" Event Not Generated When Agent UserID Changed...

$
0
0

Hi,

Please accept the following defect in the CTI Interface:

If an ACD agent is currently signed-in (joined) to a particular call center queue, and then the UserID is changed for the Extension User matching the associated agent member, then no "ACD Agent Join Update" events are generated for an active Agent Event Package Subscriptions via the CTI Interface on the corresponding agent, in order to depict that its new UserID is now joined to the existing call centre queue..

We have a Wireshark trace we can provide for the following scenario if required:  


1. A premium call centre queue AkixiEnt3Grp1CallCentre99@xdp.broadsoft.com is created (extension 7117).

2. The following extension user is created and made a member of call centre queue 7117:
- AkixiEnt3Grp1User89@xdp.broadsoft.com (7189)

3. Extension user 7189 is made an agent member of call centre 7117.

4. Extension user 7189 is joined into call centre 7117 and set to "Available" ACD state.

5. The BroadWorks UserID is changed for extension user 7189 from "AkixiEnt3Grp1CallCentre89@xdp.broadsoft.com" to "AkixiEnt3Grp1User99@xdp.broadsoft.com".
No updated Agent Status or Join Update Status CTI Interface events are generated for agent 7189, which is incorrect.
As a minimum, at least two "ACD Agent Join Update" events should be generated:
- The first event should depict that the agent's old UserID (AkixiEnt3Grp1User89@xdp.broadsoft.com) is no longer joined to the call centre.
- The second event should depict that the agent's new UserID (AkixiEnt3Grp1User99@xdp.broadsoft.com) is joined to the call centre. 

Regards,
Akixi.

"ACD Agent Join Update" Event Not Generated When Call Centre Queue UserID Changed…

$
0
0

Hi,

Please accept the following defect in the CTI Interface:

If an ACD agent is currently signed-in (joined) to a particular call center queue, and then the UserID is actually changed for the corresponding call centre queue, then no "ACD Agent Join Update" events are generated for an active Agent Event Package Subscriptions via the CTI Interface on the corresponding agent, in order to depict it joined to the new call centre UserID. 

We have a Wireshark trace we can provide for the following scenario if required:  


1. A premium call centre queue AkixiEnt3Grp1CallCentre99@xdp.broadsoft.com is created (extension 7117).

2. The following extension user is created and made a member of call centre queue 7117:
- AkixiEnt3Grp1User99@xdp.broadsoft.com (7189)

3. Extension user 7189 is made an agent member of call centre 7117.

4. Extension user 7189 is joined into call centre 7117 and set to "Available" ACD state.

5. The BroadWorks UserID is changed for call centre queue 7117 from "AkixiEnt3Grp1CallCentre99@xdp.broadsoft.com" to "AkixiEnt3Grp1CallCentre98@xdp.broadsoft.com".
No updated Join Update Status CTI Interface events are generated for agent 7189, which is incorrect.
Two "ACD Agent Join Update" events should be generated:
- The first event should depict that the call centre queue's old UserID (AkixiEnt3Grp1CallCentre99@xdp.broadsoft.com) is no longer being joined to.
- The second event should depict that the call centre queue's new UserID (AkixiEnt3Grp1CallCentre98@xdp.broadsoft.com) is being joined to.

 

Regards,
Akixi.

"ACD Agent Join Update" Event Not Generated When Call Center Queue Is Deleted...

$
0
0

Hi,

Please accept the following defect in the BroadWorks CTI Interface:

If there are ACD agents currently signed-in (joined) to a particular call center queue, and then that call centre queue is subsequently deleted via provisioning, then no "ACD Agent Join Update" events are generated for any active Agent Event Package Subscriptions via the CTI Interface on the corresponding agents.

We have a Wireshark trace we can provide for the following scenario if required:


1. A premium call centre queue AkixiEnt3Grp1CallCentre99@xdp.broadsoft.com is created (extension 7117).

2. The following extension users are created and made members of call centre queue 7117:
- AkixiEnt3Grp1User89@xdp.broadsoft.com (7189)
- AkixiEnt3Grp1User99@xdp.broadsoft.com (7199)

3. Both extension users 7189 & 7199 are made agent members of call centre 7117.

4. Both extension users 7189 & 7199 are joined into call centre 7117 and set to "Available" ACD state.

5. Call centre queue AkixiEnt3Grp1CallCentre99@xdp.broadsoft.com is deleted completely.
No updated Agent Status or Join Update Status CTI Interface events are generated for agents 7189 & 7199, which is incorrect.
These agents are now no longer a signed into the deleted call centre queue.
At a minimum an "ACD Agent Join Update" event should be generated for each ACD agent depicting that the call centre is no longer being joined to.

 

Regards,
Akixi.

Viewing all 298 articles
Browse latest View live