Asterisk + T-Online = No application 'SetCIDNum' for extension

Grinch

Neuer User
Mitglied seit
8 Apr 2006
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,
ich bin grad etwas am Basteln und hab so langsam keine Ahnung mehr, was noch sein könnte.
Folgende Hard- und Software: Linksys WRT54G mit OpenWRT
Asterisk 1.0.10
T-Online Internettelefonie

meine sip.conf
Code:
[general]
port=5060
srvlookup=no 
context=from-local
allow=ulaw
allow=alaw
canreinvite=no
nat=no
maxexpirey=240
defaultexpirey=240
register => 03222...:pw:[email protected]/03222...

[t-online]
type=friend
username=email
authname=03222...
secret=passwort
host=tel.t-online.de
;fromuser=03222....
fromdomain=tel.t-online.de
canreinvite=no
qualify=no
disallow=all
allow=alaw
allow=ulaw
allow=ilbc
allow=g726
allow=g729
allow=gsm
insecure=very
nat=no
dtmfmode=info
tos=0x18 

[123]
username=123
type=friend
secret=...
host=dynamic
qualify=no
port=5060
nat=never
context=from-local

[211]
username=211
type=friend
host=dynamic
secret=...
qualify=no
port=5060
nat=never
context=from-local
kleine Anmerkung: fromuser ist auskommentiert, weil ich gelesen hab, dass das die von SetCIDNum gesetzte Nummer überschreibt (was ja eigentlich wünschenswert wäre). Macht aber keinen Unterschied ob sie angegeben wird oder nicht, steht immer die interne Nummer drin.
Die unteren sind IP-Telefone, die angeschlossen sind.
extensions.conf:
Code:
[general]
[globals]
RINGTIME=20

[default]
[from-local]
exten => 123,1,Dial(SIP/123,${RINGTIME})
exten => 123,2,Busy
exten => 211,1,Dial(SIP/211,${RINGTIME})
exten => 211,2,Busy
exten => 200,1,Answer
exten => 200,2,Wait(3)
exten => 200,3,Hangup
exten => _0.,1,SetCIDNum(03222....)
exten => _0.,2,Dial(SIP/${EXTEN}@t-online,60)
exten => _0.,3,Busy
So weit so gut, intern telefonieren funktioniert, die 200 Testnummer geht auch. Nach einigem Rumprobieren registriert er sich jetzt auch mit T-Online. Nur Raustelefonieren geht nicht (angerufen werden hab ich noch nicht probiert, erstmal raustelefonieren :)). Und zwar kennt der Asterisk wohl die Funktion SetCIDNum nicht:
Code:
Jan  1 01:35:02 WARNING[2115]: pbx.c:1303 pbx_extension_helper: No application 'SetCIDNum' for extension (from-local, 0....., 1)
genauso wenig kennt er SetCIDName oder SetCallerID (gleiche Fehlermeldung nur halt die entsprechende Funktion)

Jetzt halt die Frage, liegt das an der minimalistischen Asterisk Version von OpenWRT oder hab ich irgendwo nen Fehler drin? Kenn mich mit dem Asterisk leider noch nicht so wirklich aus.

Danke
Michael

edit:
hab wieder etwas weiterprobiert, bin aber nicht wirklich weiter.
Und zwar hab ich versucht mit SetVar die CALLERID zu ändern, was leider wohl nicht funktioniert.
Hab jetzt testhalber mal noch ne weitere extension angelegt mit der t-onlinenummer, so dass die callerid gleich richtig ist und ich sie nicht zu ändern brauche. Und siehe da, raustelefonieren geht. Aber da ich mehrere Telefone habe würde ich doch ganz gerne von allen raustelefonieren können. An was könnte das liegen, dass SetCallerID nicht funktioniert?
 
Zuletzt bearbeitet:
so sollte es gehen:

[general]

register => 03222....:geheim:[email protected]/03222....

[t-online]
type=friend
username=email ; aber nur der Teil vor dem @
secret=passwort
host=tel.t-online.de
fromuser=03222....
fromdomain=tel.t-online.de
canreinvite=no
qualify=no
disallow=all
allow=alaw
allow=ulaw
allow=ilbc
allow=g726
allow=g729
allow=gsm
insecure=very

in der extensions.conf vor dem dial:

exten => ???,1,Set(CALLERID(name)=03222...) ; ab asterisk 1.2.x
davor SetCIDNum(03222....)
 
Netview schrieb:
in der extensions.conf vor dem dial:

exten => ???,1,Set(CALLERID(name)=03222...) ; ab asterisk 1.2.x
davor SetCIDNum(03222....)
Danke für die schnelle Antwort. Wie gesagt hab ich Asterisk 1.0.10, also wäre wohl SetCIDNum(03222...) das richtige, aber leider bekomm ich dann folgende Fehlermeldung und der Anruf schlägt fehl:
Code:
WARNING[2115]: pbx.c:1303 pbx_extension_helper: No application 'SetCIDNum' for extension (from-local, 0....., 1)
Hab spasseshalber mal noch mit Set(CALLERID...) probiert, dann heisst es No application 'Set' for extension..
 
Diese Applikationen (und noch ein paar andere) stehen in Asterisk unter OpenWRT nicht zur Verfügung ! Welche Appliaktionen Du verwenden kannst, kannst Du Dir mit "show applications" anzeigen lassen.
 
mh.. Danke
Das ist natürlich ziemlich schlecht. Hier mal die Liste:
Code:
    -= Registered Asterisk Applications =-
       AbsoluteTimeout: Set absolute maximum time of call
                Answer: Answer a channel if ringing
            BackGround: Play a file while awaiting extension
                  Busy: Indicate busy condition and stop
            Congestion: Indicate congestion and stop
              DateTime: Says a specified time in a custom format
                  Dial: Place a call and connect to the current channel
          DigitTimeout: Set maximum timeout between digits
                  Echo: Echo audio read back to the user
                  Goto: Goto a particular priority, extension, or context
                GotoIf: Conditional goto
            GotoIfTime: Conditional goto on current time
                Hangup: Unconditional hangup
                 Macro: Macro Implementation
             Milliwatt: Generate a Constant 1000Hz tone at 0dbm (mu-law)
           MusicOnHold: Play Music On Hold indefinitely
                  NoOp: No operation
                  Park: Park yourself
            ParkedCall: Answer a parked call
              Playback: Play a file
                Prefix: Prepend leading digits
              Progress: Indicate progress
              ResetCDR: Resets the Call Data Record
       ResponseTimeout: Set maximum timeout awaiting response
               Ringing: Indicate ringing tone
              SayAlpha: Say Alpha
             SayDigits: Say Digits
             SayNumber: Say Number
           SayPhonetic: Say Phonetic
           SayUnixTime: Says a specified time in a custom format
            SetAccount: Sets account code
           SetAMAFlags: Sets AMA Flags
          SetGlobalVar: Set global variable to value
           SetLanguage: Sets user language
        SetMusicOnHold: Set default Music On Hold class
                SetVar: Set variable to value
           SIPDtmfMode: Change the dtmfmode for a SIP call
              StripMSD: Strip leading digits
                Suffix: Append trailing digits
               Verbose: Send arbitrary text to verbose output
                  Wait: Waits for some time
             WaitExten: Waits for some time
       WaitMusicOnHold: Wait, playing Music On Hold
Kann ich irgendeine der Funktionen dazu missbrauchen die Nummer zu ändern? Oder bleibt wirklich nur die Variante intern die selbe Nummer zu benutzen?
 
dafür gibt es keine "Ersatzfunktion". Was Du mal probieren kannst, ist einfach die CallerID in der SIP.conf im T-Online Kontext zu setzen. Vielleicht funktioniert das ja damit. Ich hab das noch nie getestet.
 
ich nehme mal an, du meinst so:
Code:
[t-online]
type=friend
username=email
secret=pw
host=tel.t-online.de
fromuser=03222...
callerid=03222..
fromdomain=tel.t-online.de
canreinvite=no
qualify=no
disallow=all
allow=alaw
allow=ulaw
allow=ilbc
allow=g726
allow=g729
allow=gsm
insecure=very

Code:
exten => _0.,1,NoOp(${CALLERID})
exten => _0.,2,NoOp(${CALLERIDNUM})
exten => _0.,3,NoOp(${CALLERIDNAME})
exten => _0.,4,Dial(SIP/${EXTEN}@t-online,60)
exten => _0.,5,Busy


ergibt:
Code:
    -- Executing NoOp("SIP/211-54a9", ""211" <211>") in new stack
    -- Executing NoOp("SIP/211-54a9", "211") in new stack
    -- Executing NoOp("SIP/211-54a9", "211") in new stack
    -- Executing Dial("SIP/211-54a9", "SIP/07...@t-online|60") in new stack
...
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 192.168.1.10:5060;branch=z9hG4bK17265abd
From: "[B]211[/B]" <sip:[email protected]>;tag=as78e49bae
To: <sip:[email protected]>
:confused:
 
GELÖST :rock:
in der /etc/asterisk/modules.conf einfach das modul app_setcallerid.so aktivieren :o
Code:
...
noload => app_sendtext.so ; Send Text Applications
load => app_setcallerid.so ; Set CallerID Application
noload => app_setcdruserfield.so ; CDR user field apps
...
und schon klappts auch mit
Code:
exten => _0.,1,SetCallerID(03222...)
exten => _0.,2,NoOp(${CALLERIDNUM})
exten => _0.,3,NoOp(${CALLERIDNAME})
ergibt:
Code:
 -- Executing SetCallerID("SIP/211-a821", "03222...") in new stack
    -- Executing NoOp("SIP/211-a821", "03222...") in new stack
    -- Executing NoOp("SIP/211-a821", "03222...") in new stack
DANKE euch
 
OK - war ja nur eine Idee.
 
Kostenlos!

Statistik des Forums

Themen
248,856
Beiträge
2,302,965
Mitglieder
378,504
Neuestes Mitglied
Hallo61Hallo