[asterisk-app-dev] ARI Bridge and Dial

Jim Black jblack at mediu.com
Wed Jun 4 13:24:32 CDT 2014


I looked at the websocket transactions thru wireshark and noticed the
websocket requests which were failing were getting broken up into 2
separate packets (a PlaybackFinished which has a relatively large payload
actually came across as 2 separate packets). I moved the application out of
my local environment off of a different vlan and onto the glassfish app
server where it runs as a long-running application. The problem disappeared
and the application functioned normally.

I did not see that Illegal UTF-8 Sequence error coming from Asterisk which
lead me to believe there was something in the received packets which my
application (or the underlying java websocket lib) could not handle caused
by a local network routing/switching issue.

Thanks for all the help - as you can imagine there isn't much info out
there on ARI issues and really not much available about this specific web
socket exception.

-Jim

On Mon, Jun 2, 2014 at 6:38 PM, <asterisk-app-dev-request at lists.digium.com>
wrote:

> Send asterisk-app-dev mailing list submissions to
>         asterisk-app-dev at lists.digium.com
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev
> or, via email, send a message with subject or body 'help' to
>         asterisk-app-dev-request at lists.digium.com
>
> You can reach the person managing the list at
>         asterisk-app-dev-owner at lists.digium.com
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of asterisk-app-dev digest..."
>
>
> Today's Topics:
>
>    1. Re: ARI Bridge and Dial (Jim Black)
>    2. Re: ARI Bridge and Dial (Matthew Jordan)
>    3. Re: ARI Bridge and Dial (Samuel Galarneau)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Mon, 2 Jun 2014 16:28:35 -0400
> From: Jim Black <jblack at mediu.com>
> To: asterisk-app-dev at lists.digium.com
> Subject: Re: [asterisk-app-dev] ARI Bridge and Dial
> Message-ID:
>         <
> CAMXHdJQfGmQCRHE6Pn14RbP-0AZ+YY0Dea2ccUoSYL13t9Zpww at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Thanks again for the quick reply. I am using Java Websockets Java EE 7 JSR
> 356 - Tyrus part of the Oracle Glassfish package. I have retested on
> various servers and am seeing the same behavior. The call itself is fine
> but when one party hangs up I get the exception (onClose) from Asterisk. I
> am not sending a corresponding ARI event - the Hangup or StasisEnd have not
> yet fired.
>
> The object I capture in the onClose has the following info:
>
>  CloseReason object:
> closeCode:
> code:1007
> Name:NOT_CONSISTENT
> reasonPhrase:Illegal UTF-8 Sequence
>
>
>
>
> On Sat, May 31, 2014 at 1:00 PM, <
> asterisk-app-dev-request at lists.digium.com>
> wrote:
>
> > Send asterisk-app-dev mailing list submissions to
> >         asterisk-app-dev at lists.digium.com
> >
> > To subscribe or unsubscribe via the World Wide Web, visit
> >
> http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev
> > or, via email, send a message with subject or body 'help' to
> >         asterisk-app-dev-request at lists.digium.com
> >
> > You can reach the person managing the list at
> >         asterisk-app-dev-owner at lists.digium.com
> >
> > When replying, please edit your Subject line so it is more specific
> > than "Re: Contents of asterisk-app-dev digest..."
> >
> >
> > Today's Topics:
> >
> >    1. Re: ARI Bridge and Dial (Jim Black)
> >    2. Re: ARI Bridge and Dial (Matthew Jordan)
> >
> >
> > ----------------------------------------------------------------------
> >
> > Message: 1
> > Date: Fri, 30 May 2014 17:45:06 -0400
> > From: Jim Black <jblack at mediu.com>
> > To: asterisk-app-dev at lists.digium.com
> > Subject: Re: [asterisk-app-dev] ARI Bridge and Dial
> > Message-ID:
> >         <CAMXHdJSjrKmhRdf41sWiMOXfY6kmDNvLiUMmACdz72Oat7=
> > crQ at mail.gmail.com>
> > Content-Type: text/plain; charset="utf-8"
> >
> > The example you gave really helped and I am able to complete a call.
> > However, when the call-ee hangs-up my websocket listener gets an OnClose
> > message with a 1007 - Illegal UTF-8 Sequence. I don't understand why it
> > would be throwing this since I am not sending anything back from the
> > websocket listener. Sometimes I get the ChannelHangupRequest and
> StasisEnd
> > events before it closes... other times it just closes immediately after
> the
> > hangup.
> >
> > I just moved servers and it wasn't exhibiting this type of behavior prior
> > to the move. Any ideas are appreciated!!
> >
> > -Jim
> >
> >
> >
> > On Wed, May 14, 2014 at 4:46 PM, Jim Black <jblack at mediu.com> wrote:
> >
> > > Thanks for the quick response. I mistakenly assumed the create bridge
> > > command took a list of types. After taking a look at the swagger UI I
> > > figured out it was merely a list of acceptable values. I had an issue
> > with
> > > de-serializing the json response which confused the matter. I wrote a
> > > custom deserializer and it works fine now.
> > >
> > > Thanks for the example from your python code. I followed that example
> and
> > > it worked fine. Considering a bridge needs to be created for a simple
> > dial
> > > application - do you see any pitfalls of creating a pool of bridges for
> > the
> > > application to share - assuming I take care of the bridge-state
> > internally?
> > >
> > > Also... with ARI, I see no hooks into provisioning devices, I assume I
> > > need to use AMI *updateconfig*? Thanks!!!
> > >
> > >
> > >> ------------------------------
> > >>
> > >> Message: 2
> > >> Date: Thu, 8 May 2014 14:43:17 -0500
> > >> From: Samuel Galarneau <sgalarneau at digium.com>
> > >> To: Asterisk Application Development discussion
> > >>         <asterisk-app-dev at lists.digium.com>
> > >> Subject: Re: [asterisk-app-dev] ARI Bridge and Dial
> > >> Message-ID:
> > >>         <CAGZGSQ7Z8AeP7VBvT1o_aRRJJDS+8zY2J=
> > >> ubAqn-1hBDMLmOXA at mail.gmail.com>
> > >> Content-Type: text/plain; charset="utf-8"
> > >>
> > >> Jim, please see my responses in line.
> > >>
> > >>
> > >> > Hi,
> > >> >
> > >> > I have a few questions regarding ARI after experimenting with it
> for a
> > >> > while.
> > >> >
> > >> > Bridging. When I create a bridge, I provide a single type
> ('mixing') I
> > >> get
> > >> > a '200' OK back but when I retrieve details on the bridge, the type
> > >> 'list'
> > >> > is NULL. The bridge seems to work - but I wanted to make sure there
> > >> wasn't
> > >> > an issue.
> > >> >
> > >>
> > >> What do you mean by type 'list'? What ARI operation are you using to
> get
> > >> details for the bridge?
> > >>
> > >>
> > >> >
> > >> > Let's say I want to create a simple Dial application. By trial and
> > >> error,
> > >> > what seems to work is a call comes into my dial plan and off to my
> > app.
> > >> I
> > >> > answer, create a bridge and add this channel to the bridge. I then
> > >> create a
> > >> > channel for the destination SIP when it picks-up and add this to the
> > >> > bridge. I should now have 2 connected phones. Thanks!!
> > >> >
> > >>
> > >> This sounds about right. After the first channel enters your
> > application,
> > >> you need to originate a call to the second channel and then put them
> > both
> > >> in the bridge. Once that is done, getting the details of that bridge
> > will
> > >> show both channels under the channels property, which will be an array
> > of
> > >> channel ids. Please see
> > >>
> > >>
> >
> https://github.com/asterisk/ari-py/blob/master/examples/originate_example.pyfor
> > >> an example of how to do this using ari-py. The same functionality
> > >> could
> > >> be accomplished by making direct calls to ARI of course.
> > >>
> > >>
> > >> Samuel Fortier-Galarneau
> > >> -------------- next part --------------
> > >> An HTML attachment was scrubbed...
> > >> URL: <
> > >>
> >
> http://lists.digium.com/pipermail/asterisk-app-dev/attachments/20140508/f4902357/attachment-0001.html
> > >> >
> > >>
> > >> ------------------------------
> > >>
> > >> _______________________________________________
> > >> asterisk-app-dev mailing list
> > >> asterisk-app-dev at lists.digium.com
> > >> http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev
> > >>
> > >>
> > >> End of asterisk-app-dev Digest, Vol 8, Issue 3
> > >> **********************************************
> > >>
> > >
> > >
> > -------------- next part --------------
> > An HTML attachment was scrubbed...
> > URL: <
> >
> http://lists.digium.com/pipermail/asterisk-app-dev/attachments/20140530/57c40393/attachment-0001.html
> > >
> >
> > ------------------------------
> >
> > Message: 2
> > Date: Fri, 30 May 2014 17:57:03 -0500
> > From: Matthew Jordan <mjordan at digium.com>
> > To: Asterisk Application Development discussion
> >         <asterisk-app-dev at lists.digium.com>
> > Subject: Re: [asterisk-app-dev] ARI Bridge and Dial
> > Message-ID:
> >         <
> > CAN2PU+4jpRLkwq4Ys6D6uLaNVeu61nqviT+6bNn3Mepmw_t_Sw at mail.gmail.com>
> > Content-Type: text/plain; charset=UTF-8
> >
> > On Fri, May 30, 2014 at 4:45 PM, Jim Black <jblack at mediu.com> wrote:
> > > The example you gave really helped and I am able to complete a call.
> > > However, when the call-ee hangs-up my websocket listener gets an
> OnClose
> > > message with a 1007 - Illegal UTF-8 Sequence. I don't understand why it
> > > would be throwing this since I am not sending anything back from the
> > > websocket listener. Sometimes I get the ChannelHangupRequest and
> > StasisEnd
> > > events before it closes... other times it just closes immediately after
> > the
> > > hangup.
> > >
> > > I just moved servers and it wasn't exhibiting this type of behavior
> > prior to
> > > the move. Any ideas are appreciated!!
> > >
> > > -Jim
> > >
> >
> > What WebSocket library are you using?
> >
> > Can you provide a dump of what the WebSocket receives?
> >
> >
> >
> > ------------------------------
> >
> > _______________________________________________
> > asterisk-app-dev mailing list
> > asterisk-app-dev at lists.digium.com
> > http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev
> >
> >
> > End of asterisk-app-dev Digest, Vol 8, Issue 8
> > **********************************************
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://lists.digium.com/pipermail/asterisk-app-dev/attachments/20140602/6f5154b1/attachment-0001.html
> >
>
> ------------------------------
>
> Message: 2
> Date: Mon, 2 Jun 2014 16:45:02 -0500
> From: Matthew Jordan <mjordan at digium.com>
> To: Asterisk Application Development discussion
>         <asterisk-app-dev at lists.digium.com>
> Subject: Re: [asterisk-app-dev] ARI Bridge and Dial
> Message-ID:
>         <
> CAN2PU+6uVcwMHrAC_twtNmLZfWLNnD3FWdL62LisgP1jDgoGaA at mail.gmail.com>
> Content-Type: text/plain; charset=UTF-8
>
> On Mon, Jun 2, 2014 at 3:28 PM, Jim Black <jblack at mediu.com> wrote:
> > Thanks again for the quick reply. I am using Java Websockets Java EE 7
> JSR
> > 356 - Tyrus part of the Oracle Glassfish package. I have retested on
> various
> > servers and am seeing the same behavior. The call itself is fine but when
> > one party hangs up I get the exception (onClose) from Asterisk. I am not
> > sending a corresponding ARI event - the Hangup or StasisEnd have not yet
> > fired.
> >
> > The object I capture in the onClose has the following info:
> >
> >  CloseReason object:
> > closeCode:
> > code:1007
> > Name:NOT_CONSISTENT
> > reasonPhrase:Illegal UTF-8 Sequence
> >
> >
> >
>
> The only way we'll know what is causing this is if we figure out what
> Asterisk sent to your client over the WebSocket connection. Wireshark
> should show that; hopefully, the client library also contains
> debugging capabilities allowing you to dump out the bytes received.
>
> --
> Matthew Jordan
> Digium, Inc. | Engineering Manager
> 445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
> Check us out at: http://digium.com & http://asterisk.org
>
>
>
> ------------------------------
>
> Message: 3
> Date: Mon, 2 Jun 2014 17:39:02 -0500
> From: Samuel Galarneau <sgalarneau at digium.com>
> To: Asterisk Application Development discussion
>         <asterisk-app-dev at lists.digium.com>
> Subject: Re: [asterisk-app-dev] ARI Bridge and Dial
> Message-ID:
>         <CAGZGSQ6PrWs-4i4Qc768AXH66vLRN=
> M+t0j7yqd-YJy+f_FexQ at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> On Mon, Jun 2, 2014 at 4:45 PM, Matthew Jordan <mjordan at digium.com> wrote:
>
> > On Mon, Jun 2, 2014 at 3:28 PM, Jim Black <jblack at mediu.com> wrote:
> > > Thanks again for the quick reply. I am using Java Websockets Java EE 7
> > JSR
> > > 356 - Tyrus part of the Oracle Glassfish package. I have retested on
> > various
> > > servers and am seeing the same behavior. The call itself is fine but
> when
> > > one party hangs up I get the exception (onClose) from Asterisk. I am
> not
> > > sending a corresponding ARI event - the Hangup or StasisEnd have not
> yet
> > > fired.
> > >
> > > The object I capture in the onClose has the following info:
> > >
> > >  CloseReason object:
> > > closeCode:
> > > code:1007
> > > Name:NOT_CONSISTENT
> > > reasonPhrase:Illegal UTF-8 Sequence
> > >
> > >
> > >
> >
> > The only way we'll know what is causing this is if we figure out what
> > Asterisk sent to your client over the WebSocket connection. Wireshark
> > should show that; hopefully, the client library also contains
> > debugging capabilities allowing you to dump out the bytes received.
>
>
> A Wireshark capture would be very helpful here. I was able to connect to a
> local instance of Asterisk running ARI using version 1.6 of the Tyrus
> standalone client and was able to consistently get StasisStart and
> StasisEnd messages when originating calls using ARI.
>
> --
>
> Samuel Fortier-Galarneau
> Digium, Inc. | Software Developer
> 445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
> Check us out at:  www.digium.com  & www.asterisk.org
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://lists.digium.com/pipermail/asterisk-app-dev/attachments/20140602/fedea33a/attachment.html
> >
>
> ------------------------------
>
> _______________________________________________
> asterisk-app-dev mailing list
> asterisk-app-dev at lists.digium.com
> http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev
>
>
> End of asterisk-app-dev Digest, Vol 9, Issue 1
> **********************************************
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-app-dev/attachments/20140604/5af51de6/attachment-0001.html>


More information about the asterisk-app-dev mailing list