17 maj 2007 kl. 02.57 skrev Robert Lister:

On Wed, May 16, 2007 at 05:46:21PM -0500, Greg Oliver wrote:
If I push the response code back to the handset (Cisco 7960) then it is even more unhelpful as it uses the same error message for all SIP error type response codes: "Reorder" but does not tell you why the call failed to set up. If it actually put the SIP response error on the display, that would be
good, but it doesn't. (at least SIP 8.6 and prior software versions)

In order to display the response on the handset, Cisco phones require
that you have privileges and CTI control over the phones.  The only
un-authenticated things you can display through the phones are through the services and directories keys. Unfortunately, they are keeping that locked up since they want you to use them with their system. Hopefully
they will change their minds one day.

Yes. I know that... This is exactly the limitation I am trying to work
around, by being able to send back meaningful tones to the phone from
asterisk in-band rather than sending back the SIP response codes which all get displayed by the handset as "Reorder" which is completely useless in informing the user what's wrong. (And the US reorder tone sounds too much
like the UK engaged tone anyway.)

Even if the handset did display the SIP error response, I'm not expecting most users to understand the subtleties of what they all mean, so it seems
better just to simplify it with a few well known tones most users are
already familiar with (unobtainable, equipment busy, user busy, etc.) And it
will behave in the same way regardless of the model of handset.
("Call worked/Busy/Call failed...")

Unfortunately Dial() DIALSTATUS is a bit limited in that if call setup fails for some reason, it mostly returns CONGESTION. Playing a congestion tone for perhaps 12 different call setup problems including misdials, doesn't help either. I want to play the right tone (for, say, unobtainable, equipment
busy, etc.)

The ISDN gateway I am using goes to great pains to send back the correct SIP response to asterisk, which then just reports it as "CONGESTION" which is a
bit limiting.

The SIP response code is displayed on asterisk's console, I just cannot see
a way to get at it in the dial plan....

There are multiple ways to get the result of a dial() operation. The most detailed way is to read the HANGUPCAUSE channel variable, which is translated from
each channels signalling protocol response code. As the ISDN gateway,
Asterisk "goes through great pains" to translate SIP codes to the ISDN cause
codes which we use as the "esperanto" code within the PBX core, which as
you know is multiprotocol.

The translation from SIP to the cause codes follows available RFCs and where those not cover the code, Cisco's documentation. I am sure that those are the
same as your ISDN gateway adheres to.

So in order to do something useful, use the HANGUPCAUSE channel variable.

/O
_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to