ausgehende callerid bei IAX2 unterdrücken

iptelefonie

Neuer User
Mitglied seit
29 Mrz 2006
Beiträge
104
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich habe 2 Asterisk-Server, die per IAX2 verbunden sind. Einer hängt via chan_capi an einem Telekom ISDN-Anschluss.

Zum rauswählen verende ich verschiedene Extensions folgender Art:

PHP:
[example]
exten => _0.,1,SetCALLERPRES(allowed)
exten => _0.,n,Dial,CAPI/ISDN1/76437234:${EXTEN}|55|Ttr

Das setzten der ausgehenden CallerID funktioniert nur, wenn die Extension mit einer unterdrückten Nummer angerufen wird. Wenn ich bei den Endgeräten über IAX2 die Rufnummerübertragung nicht ausschalte wird immer die Standard-MSN meines Anschlusses übertragen.

Wie kann ich permament die Callerid bei IAX2 unterdrücken? Kann man die CallerID-Variablme mit einem speziellen Wert setzten? Ich habe auch versucht SetCALLERPRES in Verbindung mit IAX2 zu benutzen. Leider ohne Erfolg.
 
Ich verstehe leider nicht genau dein Problem.
Wie ist die Konstellation denn nun genau? An einem der Server sind die Clients registriert, der wiederum sich bei dem anderen Asterisk registriert, der über CHAN_CAPI mit dem ISDN Netz verbunden ist. Ist dies so richtig?

Wie kann ich permament die Callerid bei IAX2 unterdrücken?

Wenn Du generell die abgehende Rufnummer über ISDN unterdrücken willst, dann setz dies in den Wählplan:
Code:
SetCallerPres(prohib_not_screened)
oder funktioniert genau das nicht?

Wenn Du eine bestimmte abgehende Rufnummer nehmen willst, dann reicht bei mir die folgende Angabe:
Code:
exten => _0.,1,Dial,CAPI/ISDN1/76437234:${EXTEN}|55|Ttr

Martin
 
Das setzen einer beliebigen MSN funktioniert bei mir so:
PHP:
[example] 
exten => _0.,1,SetCALLERPRES(allowed) 
exten => _0.,n,Dial,CAPI/ISDN1/76437234:${EXTEN}|55|Ttr

Nur in dem Fall, wo ein beliebiges Gerät über IAX eine CallerID gesetzt hat wird immer die Standard-MSN genommen und SetCALLPRES hat keine Wirkung. Auch wenn ich SetCallerPres(prohib_not_screened) verwende funktioniert das immer, bis auf den Sonderfall.

Ja der 2. Asterisk regestriert sich beim 1. (der 1. hängt mit chan_capi am NTBA) mit IAX2. Am 2. Asterisk hängen mittels Zaphfc verschiedenen ISDN-Telefone. Nur wenn ich an den Telefonen die Rufnummer unterdrücke funktioniert SetCALLPRES am 1. An einem ISDN-Telefon kann ich allerdings die Rufnummer nicht unterdrücken und auch keine MSN einstellen, da dieses nur raus telefoniert. Für diesen Fall würde ich gerne mittels IAX2 die CallerID unterdrücken.
 
Trag mal bitte in deinen Wählplan folgendes ein:
Code:
exten => _0.,1,NoOp(CALLERID(num))
exten => _0.,n,NoOp(CALLERID(name))
...
und zeige dann mal die Ausgaben der CLI beider Fälle.

Martin
 
Ich benutze zum Rauswählen folgenden Context:

PHP:
[example]
exten => _0.,1,SetCALLERPRES(allowed)
exten => _0.,n,NoOp,${CALLERIDNAME}
exten => _0.,n,NoOp(${CALLERID(num)})
exten => _0.,n,NoOp(${CALLERID(name)})
exten => _0.,n,Dial,CAPI/ISDN1/76437234:${EXTEN}|55|Ttr

Von einem Siemens ISDN-Telefon sieht das im CLI vom Asterisk (verbose Level 3 und capi debug) so aus:

-- Accepting AUTHENTICATED call from 192.168.0.150:
> requested format = alaw,
> requested prefs = (alaw),
> actual format = alaw,
> host prefs = (alaw),
> priority = mine
-- Executing SetCallerPres("IAX2/entfernter_asterisk-1", "allowed") in new stack
-- Executing NoOp("IAX2/entfernter_asterisk-1", "") in new stack
-- Executing NoOp("IAX2/entfernter_asterisk-1", "4706") in new stack
-- Executing NoOp("IAX2/entfernter_asterisk-1", "") in new stack
-- Executing Dial("IAX2/entfernter_asterisk-1", "CAPI/ISDN1/76437234:01629856948|55|Ttr") in new stack
> data = ISDN1/76437234:01629856948 format=8
> capi request for interface 'ISDN1'
== ISDN1#02: Call CAPI/ISDN1#02/01629856948-1 (pres=0x03, ton=0x00)
-- ISDN1#02: received CONNECT_CONF PLCI = 0x101
-- Called ISDN1/76437234:01629856948
-- chan_capi queue frame: [ TYPE: Control (4) SUBCLASS: Unknown control '15' (15) ] [ISDN1#02]
-- CAPI/ISDN1#02/01629856948-1 is proceeding passing it to IAX2/entfernter_asterisk-1
-- chan_capi queue frame: [ TYPE: Control (4) SUBCLASS: Unknown control '14' (14) ] [ISDN1#02]
-- chan_capi queue frame: [ TYPE: Control (4) SUBCLASS: Ringing (3) ] [ISDN1#02]
-- CAPI/ISDN1#02/01629856948-1 is making progress passing it to IAX2/entfernter_asterisk-1
-- CAPI/ISDN1#02/01629856948-1 is ringing
-- ISDN1#02: activehangingup (cause=0) for PLCI=0x101
== Spawn extension (entfernter_asterisk, 01629856948, 5) exited non-zero on 'IAX2/entfernter_asterisk-1'
-- Hungup 'IAX2/entfernter_asterisk-1'
== ISDN1#02: Interface cleanup PLCI=0x101

Alles funktioniert so wie es soll. Auf dem Handy wir die MSN 76437234 angezeigt. Also scheint es doch nicht an der CallerID zu liegen?

Hier jetzt der Anruf von einem ISDN-Telefon, wo ich nichts einstellen kann:

-- Accepting AUTHENTICATED call from 192.168.0.150:
> requested format = alaw,
> requested prefs = (alaw),
> actual format = alaw,
> host prefs = (alaw),
> priority = mine
-- Executing SetCallerPres("IAX2/entfernter_asterisk-2", "allowed") in new stack
-- Executing NoOp("IAX2/entfernter_asterisk-2", "") in new stack
-- Executing NoOp("IAX2/entfernter_asterisk-2", "") in new stack
-- Executing NoOp("IAX2/entfernter_asterisk-2", "") in new stack
-- Executing Dial("IAX2/entfernter_asterisk-2", "CAPI/ISDN1/76437234:01629856948|55|Ttr") in new stack
> data = ISDN1/76437234:01629856948 format=8
> capi request for interface 'ISDN1'
== ISDN1#02: Call CAPI/ISDN1#02/01629856948-2 (pres=0x03, ton=0x7f)
-- Called ISDN1/76437234:01629856948
-- ISDN1#02: received CONNECT_CONF PLCI = 0x101
-- chan_capi queue frame: [ TYPE: Control (4) SUBCLASS: Unknown control '15' (15) ] [ISDN1#02]
-- CAPI/ISDN1#02/01629856948-2 is proceeding passing it to IAX2/entfernter_asterisk-2
-- chan_capi queue frame: [ TYPE: Control (4) SUBCLASS: Unknown control '14' (14) ] [ISDN1#02]
-- chan_capi queue frame: [ TYPE: Control (4) SUBCLASS: Ringing (3) ] [ISDN1#02]
-- CAPI/ISDN1#02/01629856948-2 is making progress passing it to IAX2/entfernter_asterisk-2
-- CAPI/ISDN1#02/01629856948-2 is ringing
-- chan_capi queue frame: [ TYPE: Control (4) SUBCLASS: Busy (5) ] [ISDN1#02]
-- CAPI/ISDN1#02/01629856948-2 is busy
-- ISDN1#02: activehangingup (cause=21) for PLCI=0x101
== Everyone is busy/congested at this time (1:1/0/0)
== ISDN1#02: Interface cleanup PLCI=0x101
Apr 4 21:46:14 WARNING[23662]: pbx.c:2436 __ast_pbx_run: Timeout, but no rule 't' in context 'entfernter_asterisk'
-- Hungup 'IAX2/entfernter_asterisk-2'

Hier wird die Standard-MSN auf dem Handy angezeigt. Es ist so, als ob setCALLPRES hier ignoriert wird.
 
Wo ist denn der Unterschied zwischen den beiden Anrufen?

Executing Dial("IAX2/entfernter_asterisk-1", "CAPI/ISDN1/76437234:01629856948|55|Ttr")
Executing Dial("IAX2/entfernter_asterisk-2", "CAPI/ISDN1/76437234:01629856948|55|Ttr")

Was hat das -1 bzw -2 zu sagen?
 
Das Dial Kommando sagt meiner Meinung nach nichts aus. Die Zahlen 1 und 2 sind von Asterisk willkürlich gewählt und haben nichts mit deinem Problem zu tun.

Das einzigste was hier das Problem darstellen könnte sind diese Zeilen:
Code:
== ISDN1#02: Call CAPI/ISDN1#02/01629856948-1 (pres=0x03, ton=0x00)
und
Code:
== ISDN1#02: Call CAPI/ISDN1#02/01629856948-2 (pres=0x03, ton=0x7f)
Also letztlich die Type of Number (ton).Mit der Variablen CALLERTON kannst Du den Wert setzen. Die Werte die dort setzbar sind findest Du auf der Seite http://www.ciscopress.com/articles/article.asp?p=29737&seqNum=3 und dort unter Figure 8-19 Calling and Called Party IE Format. Im Zweiten Fall (s.o) stehen deine Werte stehen auf Reserved, was auch immer das heissen sollen.
Vielleicht sprichst Du sonst mal über die chan capi mailing liste (http://lists.melware.net/mailman/listinfo/chan-capi-users) die Entwickler an oder alternativ in diesem Forum den Benutzer armin der kennt sich sehr gut damit aus.

Martin
 
Okay es hat jetzt schon einer Änderung gegeben. Jetzt wird immer (egal was ich mache) die Haupt-MSN gesendet.

Hier nochmal die Ausgabe von einem beliebigen Telefon:

CAPI Message Debugging Enabled
-- Accepting AUTHENTICATED call from 192.168.0.150:
> requested format = alaw,
> requested prefs = (alaw),
> actual format = alaw,
> host prefs = (alaw),
> priority = mine
-- Executing Set("IAX2/stall-3", "_CALLERTON=16") in new stack
-- Executing SetCallerPres("IAX2/stall-3", "allowed") in new stack
-- Executing NoOp("IAX2/stall-3", "") in new stack
-- Executing NoOp("IAX2/stall-3", "4706") in new stack
-- Executing NoOp("IAX2/stall-3", "") in new stack
-- Executing Dial("IAX2/stall-3", "CAPI/ISDN1/76437234:01629856948|55|Ttr") in new stack
> data = ISDN1/76437234:01629856948 format=8
> capi request for interface 'ISDN1'
== ISDN1#02: Call CAPI/ISDN1#02/01629856948-0 (pres=0x03, ton=0x10)
-- Called ISDN1/76437234:01629856948
-- ISDN1#02: received CONNECT_CONF PLCI = 0x101
-- chan_capi queue frame: [ TYPE: Control (4) SUBCLASS: Unknown control '15' (15) ] [ISDN1#02]
-- CAPI/ISDN1#02/01629856948-0 is proceeding passing it to IAX2/stall-3

In diesem Thread wurde es so gelöst:
http://www.ip-phone-forum.de/showpost.php?p=706911&postcount=8

Allerdings verstehe ich nicht, wie er da auf 16 bzw 32 kommt? Bei mir scheint das ja nicht zu passen?

Hier nochmal die Extension:

PHP:
[example]
exten => _0.,1,Set(_CALLERTON=16)
exten => _0.,n,SetCALLERPRES(allowed)
exten => _0.,n,NoOp,${CALLERIDNAME}
exten => _0.,n,NoOp(${CALLERID(num)})
exten => _0.,n,NoOp(${CALLERID(name)})
exten => _0.,n,Dial,CAPI/ISDN1/76437234:${EXTEN}|55|Ttr
 
Leider kann ich Dir nicht erläutern warum, aber hast Du schon mal probiert dieses zu setzen:

Code:
exten => _0.,1,Set(_CALLERTON=0) 
...

Gruß

Martin
 
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.