Rufweiterleitung extern zu extern: kein B-Kanal frei?

howy-1

Neuer User
Mitglied seit
5 Apr 2010
Beiträge
39
Punkte für Reaktionen
0
Punkte
6
Hallo zusammen,

ich kämpfe gerade mit der Weiterleitung von eingehenden Anrufen aufs Handy, wenn der angerufene interne Client nicht annimmt. Die testweise vorherige Weiterleitung an einen anderen internen Client geht, nur das Weiterleiten wieder nach "draußen" geht nicht.

Hier die betreffende extension:

exten => <MSN>,1,Dial(SIP/2003,10,r)
exten => <MSN>,n,Dial(SIP/2002,10,r)
exten => <MSN>,n,Dial(CAPI/g1/00160*********:1,30,r)

capi.conf:

;
; CAPI config
;
;

; general section

[general]
nationalprefix=0
internationalprefix=00
accountcode=3647
rxgain=1.0
txgain=1.0
language=de ;set default language
;ulaw=yes ;set this, if you live in u-law world instead of a-law

; interface sections ...

[ISDN1]
isdnmode=msn


incomingmsn=* ;Telefonnummer auf der Anrufe reinkommen

outgoingmsn=<MSN 1-4> ;Telefonnummer unter der Anrufe rausgehen

controller=1
group=1
softdtmf=on
relaxdtmf=on

context=ISDN1 ;Kontext der Anrufe die ueber diese ISDN Karte den asterisk Server erreichen
immediate=yes <- auch schon mit no versucht
echocancelold=yes
bridge=yes
devices=2


Und hier dazu die CLI-Ausgabe mit verbosity 10 nachdem die internen Clients erfolgreich nicht drangegangen sind:

-- Executing [<MSN>@ISDN1:4] Dial("CAPI/ISDN1#02/<MSN>-0", "CAPI/g1/00160******:1|30|r") in new stack
-- Called g1/00160*******:1
-- CAPI/ISDN1#01/1-1 is proceeding passing it to CAPI/ISDN1#02/<MSN>-0
-- CAPI/ISDN1#01/1-1 is busy
== ISDN1#01: CAPI Hangingup for PLCI=0x201 in state 5
[Apr 10 14:40:05] NOTICE[17242]: cdr.c:435 ast_cdr_free: CDR on channel 'CAPI/ISDN1#01/1-1' not posted
== Everyone is busy/congested at this time (1:1/0/0)


<MSN> ist die MSN, af der "hereingerufen" wird, 0160******** ist die Handynummer, die angerufen werden soll.

Für mich sieht das nach 2 belegten Kanälen aus. Wiederum kann ich von einem Client aus über eine andere MSN den anderen Client anrufen.
Also die Richtung "intern->extern->intern" funktioniert. Andersherum nicht.

Karte ist eine FritzPCI mit chan_capi.

Wo könnte ich ansetzen, ich suche schon 2 Stunden hier im Forum.

LG Dirk
 
Zuletzt bearbeitet:
Hallo Dirk,

-- Called g1/00160*******:1

Ohne dass ich jetzt groß darüber nachgedacht habe:

Mir scheint, dass Du eine Nummer in den USA (001 60...) anrufst. Mit anderen Worten: Die erste Null ist zuviel!

Ralph
 
Hallo Dirk,



Ohne dass ich jetzt groß darüber nachgedacht habe:

Mir scheint, dass Du eine Nummer in den USA (001 60...) anrufst. Mit anderen Worten: Die erste Null ist zuviel!

Ralph

Nein, die Null ist für die "Amtsholung" und wird doch hinten durch das "***:1" wieder abgeschnitten.

Dirk
 
Hallo Dirk,

Dein Dial-Befehl ist falsch.

CAPI/<Controller>/[<MSN>:]<Rufnummer>

Du rufst also die Nummer 1 an mit 00160... als abgehende MSN.

Edit: hab grad gesehen, dass Du noch mal was geschrieben hast. Das mit :1 funktioniert nur innerhalb einer Variable, also z.B. ${EXTEN:1} schneidet von ${EXTEN} das erste Zeichen weg. Einfach so hinter der Nummer geht das nicht.

Svenja
 
Hängt Dein Asterisk direkt an einem NTBA? Dann brauchst Du keine führende Null zur Amtsholung...

Hast Du die Handynummer tatsächlich so in Deinem Dialplan eingetragen?
Code:
exten => <MSN>,n,Dial(CAPI/g1/00160*********:1,30,r)

Falls ja: Lass doch einfach die führende Null und das :1 weg. Das Abschneiden von Stellen klappt bei Variablen. Wenn Du die Nummer aber hart codiert hast, dann wird das nicht funktionieren.

Ralph

Edit: Mist, zu langsam. Svenja war mal wieder schneller - und besser!
 
Ja, mein Asterisk hängt direkt am NTBA. Der von mir eingegebene Dialbefehl funktioniert auch, doch das ist nicht mein Problem. Ich bekomme eben immer eine Meldung, als wenn beide ISDN-Kanäle belegt wären, wenn er bei hereinkommendem externen Anruf gleichzeitig rauswählen soll.
Ich habe gerade mal testweise in der zapata.conf die channels=1-2 auf nur 1 gesetzt und siehe da, es geht. Doch jetzt reagiert der Asterisk komplett nur noch auf einen Kanal, bei 2 hereinkommenden Anrufen kriegt einer "besetzt".

Was ich vielleicht noch vergaß: Mei Asterisk ist ein 1.4er.
 
Warum zapata.conf, ich denke Du verwendest CAPI?

Und Dein Dial-Befehl kann IMHO einfach nicht funktionieren, siehe mein Beitrag oben. Außer Du verschweigst uns noch etwas.

Svenja
 
Aaaalso, das mit der zapata.conf habe ich irgendwo in den Weiten des undurchdringlichen Internet im Zusammenhang mit CAPI gelesen. Und dass die Änderung der Channels von 1-2 auf 1 eine Wirkung hatte, muss es ja irgendwas damit zu tun haben.

Das Dialscript sah so aus wie beschrieben, also:

<MSN auf der der Anruf hereinkommt>,n,Dial(CAPI/g1/zu wählende Handynummer:1,30,r)

Was ich jetzt bei der ganzen Bastelei nicht mehr 100%ig weiß ist, ob ich bei dem Versuch der funktionierte, die Sache mit der führenden Null und dem :1 noch drin hatte.
Das g1 habe ich jetzt auch wieder durch ISDN1 ersetzt.
Nichtsdestotrotz und egal, welche Nummer da per ISDN gewählt werden soll, und wenns in Kackmudistan oder sonstwo rauskommt, bei 2 ISDN-Kanälen sollte doch ein- und gleichzeitig ausgehende Verbindung möglich sein, was aber ohne Änderung in der zapata.conf nicht geht. Es ist immer, als wenn beide gleichzeitig belegt wären.
Deshalb ja auch: -- CAPI/ISDN1#01/1-1 is busy obwohl nur der eine Anruf hereinkommt



Gruß Dirk
 
Also, zapata.irgendwas hat definitiv rein gar nichts mit capi zu tun, das kannst du in die Tonne kloppen.
Es liegt nicht an belegten B-Kanälen. Wenn das so wäre würdest du nicht 'busy' bekommen, sondern "no free circuit/channel available".

Wie schon angemerkt worden ist, ist deine Nummer im CAPI Dial String falsch. Das ":1" darf da nicht auftauchen. Wenn du das behebst, wird es bestimmt funktionieren.

Armin
 
Ok, ich werde das nochmal nachprüfen, wenn ich wieder zu Hause bin. Wird aber wahrscheinlich erst Freitag oder Samstag.
 
Soooo,

jetzt habe ich es nochmal probiert:

Wählstring: exten => 4******,1,Dial(CAPI/ISDN1/0162*******,60,r)

Wollte auch schon wieder schreiben, dass es wieder nicht geht, da fiel mir mein Denkfehler beim Basteln selber auf: vom internen Telefon ins Festnetz eine andere eignene MSN anrufen, um den Anruf wieder nach draußen weiterleiten zu lassen, kann nicht gehen, bei nur 2 ISDN-Kanälen...
Also es geht jetzt.

Manchmal sollte man wirklich einfach mal etwas Abstand zu einer Sache bekommen und dann neu herangehen.
Vielen Dank an Euch, die mir helfen wollten.

LG Dirk
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.