[asterisk] telefoon (achter sipura) blijft overgaan

Pagina: 1
Acties:

  • ApolloDrm
  • Registratie: December 2006
  • Laatst online: 02-01 01:31
Ik heb een probleempje met Asterisk, zowel 1.2.13 als de de laatste revision uit SVN (revisie 48678).

Ik heb 2 Linksys Sipura SPA-3000 ATA's, die allebei in- en outbound probleemloos werken met Asterisk. op 1 detail na.

De volgende situatie:
  • Een inkomende call, via een externe voipprovider komt binnen.
  • Wordt afgehandeld volgens het dialplan in extensions.conf, er wordt een DIAL gedaan:
    exten => _..,1,Dial(SIP/werkkamer)
  • de ATA reageert en laat de aangesloten telefoon rinkelen. Als ik opneem werkt alles, men kan praten.
  • maar als ik NIET opneem en de beller hangt op, dan BLIJFT de Sipura rinkelen. Dit komt doordat Asterisk een nieuwe DIAL uitvoert, direct nadat de eerste DIAL dus geexited is (doordat de beller ophing). Deze nieuwe DIAL voert Asterisk alleen uit bij inkomende calls over 1 van de 2 geconfigureerde voipproviders. Het gebeurt dus niet als ik intern bel, met een softphone vanaf de PC of de telefoon aangesloten op de andere ATA. Het gebeurt ook niet nadat eenmaal een gesprek tot stand is gebracht.
Asterisk log ziet er zo uit:

Bij het inkomende telefoontje vanaf de Voip provider:

- Executing Dial("SIP/3154112345-081a0140", "SIP/werkkamer|20") in new stack
-- Called werkkamer
-- SIP/werkkamer-081a5c58 is ringing


De gebelde partij neemt niet op. Nu gaat de beller ophangen. De sessie wordt beeindigd, en direct wordt een nieuwe sessie gestart met een nieuwe DIAL, en het rinkelen begint opnieuw (voor de beleving van de gebelde blijft het rinkelen gewoon doorgaan):

== Spawn extension (budgetphone-12345-in, budgetphone-in, 1) exited non-zero on 'SIP/3154112345-081a0140'
-- Executing Dial("SIP/3154112345-081a0140", "SIP/werkkamer|20") in new stack
-- Called werkkamer
== Spawn extension (budgetphone-12345-in, h, 1) exited non-zero on 'SIP/3154112345-081a0140'
-- Got SIP response 481 "Call Leg/Transaction Does Not Exist" back from 10.12.0.205


Mocht de gebelde partij opnemen in deze 2e call blijft het helemaal stil aan de lijn.

Zoals gezegd gaat het alleen fout bij calls vanaf externe Voip provider. Een intern geinitieerd gesprek (niet komend vanaf een Voip provider maar een softphone/andere ATA) gaat goed. Als er dan een sessie tot stand wordt gebracht ziet het er zo uit:

-- Executing Dial("SIP/BasPC-081a5c58", "SIP/werkkamer") in new stack
-- Called werkkamer
-- SIP/werkkamer-081a0140 is ringing


en als dan de beller ophangt gaat het gewoon goed:

== Spawn extension (BasPC, 11, 1) exited non-zero on 'SIP/BasPC-081a5c58'\

Er volgt dan geen nieuwe DIAL en dus ook geen verder foutmelding over niet bestaande sessie (SIP error 481).

Ik vroeg me af of iemand hier misschien een idee heeft wat er aan de hand zou kunnen zijn? Ik heb al geprobeerd met nat=yes of canreinvite=no in de sip.conf voor de betreffende ATA's, maar dat helpt niet..

Alvast bedankt,

Bas

  • ApolloDrm
  • Registratie: December 2006
  • Laatst online: 02-01 01:31
Ik kwam erachter dat de nieuwe DIAL gegenereerd werd vanuit de een speciale extensie genaamd 'hangup' (vandaar ook de 'h' in de nieuwe DIAL (budgetphone-12345-in, h, 1)).

Die 'h' defineren in het dialplan lost mijn probleem op:

exten => h,1,Hangup()

Weet niet of het een workaround is of dat dit zo hoort maar goed ik heb nu geen last meer van doorrinkelende telefoons in ieder geval :)