[Gelöst] Sipcall Anbindung an Asterisk

markus140

Neuer User
Mitglied seit
6 Jun 2014
Beiträge
11
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich habe vor einigen Tagen einen Asterisk installiert und versuche derzeit Sipcall (at) einzubinden. Ich möchte erreichen, dass ich von einem Handy mittels Wahl der Sipcall Nummer direkt an mein Softphone am Computer verbunden werde.

hier die debug Ausgaben:


sip show registry zeigt mir, dass sipcall registriert ist (auch die Logfiles deuten daraufhin, dass eine Verbindung versucht wird auzubauen)

Code:
<--- Reliably Transmitting (no NAT) to 212.127.203.31:5060 --->
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 212.127.203.31:5060;branch=z9hG4bK-524287-1---6d5f1e5c3caac102;received=212.117.203.31;rport=5060
Via: SIP/2.0/UDP 212.117.203.31:5061;branch=z9hG4bK-ofxkk6m4ooak53dw;rport=5061
From: <sip:[email protected]>;tag=osl3n4nrskyipayn.o
To: <sip:[email protected]>;tag=as011ce55c
Call-ID: [email protected]~2o~1o
CSeq: 174 INVITE
Server: Asterisk PBX 1.8.10.1~dfsg-1ubuntu1
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="148ea1fd"
Content-Length: 0
<------------>
Scheduling destruction of SIP dialog '[email protected]~2o~1o' in 32000 ms (Method: INVITE)

allerdings ist der account Unmonitored (sip show peers):

Code:
43720XXXXXX/43720XXXXXX    212.117.203.31       5060     Unmonitored

Meine Configuration bisher: sip.conf:

Code:
[general]
register => 43720XXXXXX:[email protected]/43720XXXXXX
srvlookup=yes
port = 5060
bindaddr = <my external ip>
language=de

[101]
type=friend
secret=password
qualify=yes
nat=no
host=dynamic
canreinvite=no
context=home

[43720XXXXXX]
type=friend
language=de
username=43720XXXXXX
fromuser=43720XXXXXX
secret=password
host=free1.voipgateway.org
fromdomain=free1.voipgategay.org
insecure=very
caninvite=no
canreinvite=no
nat=no
contex=trunk

[sipcall]
type=friend
fromdomain=free1.voipgateway.org
host=free1.voipgateway.org
disallow=all
allow=ulaw

extensions.conf:

Code:
[home]
include => trunk
exten => 101,1,Dial(SIP/101) ; sip softphone
 
[trunk]
ignorepat => 0
;INCOMING
exten => 43720XXXXXX,1,Macro(valid,SCCP,101) 

;OUTGOING
exten => _00XXXXXXXXX,1,SetCallerID("test" <43720XXXXXX>)
exten => _00XXXXXXXXX,2,Dial(SIP/${EXTEN:1}@43720XXXXXX,${TIMEOUT},Ttr)
exten => _00XXXXXXXXX,3,Congestion
exten => _00XXXXXXXXX,4,Busy
exten => _00XXXXXXXXX,5,Hangup

[macro-valid]
exten => s,1,Dial(${ARG1}/${ARG2},${TIMEOUT})
exten => s,2,Macro(callvm,${ARG2})

kann mir jemand auf die Sprünge helfen was ich hier falsch mache? Danke!
 
Zuletzt bearbeitet:
Na da geht ja noch so einiges ein wenig durcheinander.
Aber beschäftigen wir uns erst mal mit den SIP-Parametern. Da hast Du offenbar die Daten irgendwo abgeschrieben, denn sie sind einerseits veraltet (und stimmen in aktuellen Asterisk-Versionen so nicht mehr), andererseits verwendet SIPCALL Loadbalancer, die hier nicht berücksichtigt sind, was wiederum zu Problemen führen kann.
Daher hier mal eine alternative sip.conf, die funktioniert (wenn auch jetzt noch nicht alle Feinheiten berücksichtigt sind):

Code:
[general]
language=de
udpbindaddr=<externalIP>:5060
transport=udp
qualify=no
srvlookup=no
allowguest=no
nat=no
context=default
alwaysauthreject=yes
t38pt_udptl=yes,maxdatagram=400
registerattempts=0
registertimeout=60
defaultexpiry=3600
maxexpiry=7200
sendrpid=yes
trustrpid=yes
rpid_update=yes
disallow=all
allow=ulaw
allow=alaw

register => 43720XXXXXX:[email protected]/43720XXXXXX

[external-t38](!)
        type=peer
        usereqphone=no
        directmedia=yes
        dtmfmode=rfc2833
        context=trunk
        t38pt_udptl=yes,maxdatagram=400


[SIPCALL_AT](external-t38)
remotesecret=<password>
defaultuser=43720XXXXXX
fromuser=43720XXXXXX
fromdomain=free1.voipgateway.org
host=free1.voipgateway.org

[SIPCALL_AT_IN_1](external-t38)
host=free1.voipgateway.org

[SIPCALL_AT_IN_2](external-t38)
host=free2.voipgateway.org

[SIPCALL_AT_IN_3](external-t38)
host=free3.voipgateway.org

[SIPCALL_AT_IN_4](external-t38)
host=free4.voipgateway.org


[101]
type=friend
secret=password
qualify=yes
nat=no
host=dynamic
directmedia=no
context=home

Dies vorausgeschickt sind jetzt zwei Dinge wichtig: Anrufe von SIPCALL (also auf der SIPCALL-Nummer landen in trunk, Anrufe vom Telefon 101 landen in home. Und: 101 ist ein SIP-Telefon und keine SCCP-Gegenstelle.
Damit können wir uns den extensions zuwenden und schauen uns erst mal trunk an. Da soll ja ein einkommender Anruf einfach an die 101 weitergeschickt werden. Also brauchen wir zunächst offenbar so etwas:

Code:
[trunk]
;hier nur INCOMING
exten => 43720XXXXXX,1,Dial(SIP/101)

Schon kommen eingehende Gespräche an der 101 an.
Jetzt schauen wir uns die Gegenrichtung an, sprich: 101 will telefonieren, da trennen wir zunächst die mögliche Richtungen nach intern (was hier mit einem Telefon noch nicht sinnvoll ist, aber das Prinzip gilt) und extern:

Code:
[home]
include => intern
include => extern

Nun müssen wir die Kontexte intern und extern definieren:

Code:
[intern]
exten => 101,1,Dial(SIP/101) ; sip softphone

Intern kann man sich also selbst anrufen. Ist zwar nicht sehr hilfreich, aber zu Demozwecken ok ;)
Spannender ist da schon extern, da können wir in die weite Welt telefonieren. Dabei ist es wichtig, dass wir darauf achten, in welcher Form unser Provider (SIPCALL) die Rufnummer übergeben haben will, um eine Verbindung aufzubauen. Als Nutzer wollen wir ja idealerweise so wählen, wie wir es vom guten alten Festnetz oder meinethalben vom Mobiltelefon gewohnt sind.
Für SIPCALL als Provider ist das einfach, da SIPCALL (AT) ein nationales Wahlmuster für Österreich unterstützt. Da kommen wir zu Folgendem:

Code:
[extern]
;Wir unterstellen, dass wir in Wien (ONKZ 01) wohnen
:Ortsgespräch
exten => _ZXX.,1,Dial(SIP/SIPCALL_AT/01${EXTEN})
;Nationales Gespräch
exten => _0ZX.,1,Dial(SIP/SIPCALL_AT/${EXTEN})
;Internationales Gespräch
exten => _00ZX.,1,Dial(SIP/SIPCALL_AT/${EXTEN})

Und - stark vereinfacht - ist es das schon. Die CALLERID brauchen wir nicht zu setzen, da wir das mit fromuser in der sip.conf für SIPCALL schon gemacht haben.

Fassen wir unsere extensions.conf noch einmal zusammen, hätten wir dann - inkl. eines default-Kontexts der aus Sicherheitsgründen einfach einen Hangup macht - folgendes:

Code:
[default]
exten => _.,1,Hangup

[trunk]
;hier nur INCOMING
exten => 43720XXXXXX,1,Dial(SIP/101)

[home]
include => intern
include => extern

[intern]
exten => 101,1,Dial(SIP/101) ; sip softphone

[extern]
;Wir unterstellen, dass wir in Wien (ONKZ 01) wohnen
:Ortsgespräch
exten => _ZXX.,1,Dial(SIP/SIPCALL_AT/01${EXTEN})
;Nationales Gespräch
exten => _0ZX.,1,Dial(SIP/SIPCALL_AT/${EXTEN})
;Internationales Gespräch
exten => _00ZX.,1,Dial(SIP/SIPCALL_AT/${EXTEN})

Das ist natürlich jetzt sehr einfach gestrickt, sollte aber als Gerüst genügen, um darauf aufzubauen.
Dein Original könnte man auch zum Funktionieren bekommen, aber da solltest Du selbst - ggf. nach Ausprobieren des hier Geschriebenen - in die Analyse der Fehler einsteigen (die man im Übrigen auch auf der Asterisk-Console mit core set verbose 5 ganz gut sehen würde).

Viel Erfolg!
 
Zuletzt bearbeitet:
vielen Dank für diese ausführliche Antwort! Du hast natürlich recht, ich hab hier einiges zusammen kopiert (nachdem ich in zig versuchen leider nicht alles korrekt verstanden habe). ich konnte gerade mein erstes Gespräch vom Handy zum Softphone und umgekehrt machen :)

Basierend auf deiner Konfiguration denke ich kann ich jetzt leichter weiter machen und alles so einrichten wie ich es gern hätte. Nochmals vielen Dank für die schnelle Hilfe!
 
Na dann ist doch alles gut ...
 
Hallo,

also mein Setup. FritzBox und an den FritzBox RaspberryPi mit RasPBX installiert. RaspberryPi ist in DMZ, daher kein Firewall von FritzBox. Ich habe bei sipcall.at einen freien SIP Account.

Ich habe alles so gemacht als es hier vorgeschlagen ist und es funktioniert nicht.

hier sip.conf :

Code:
[general]
language=de
udpbindaddr=subdomain.chickenkiller.com:5060
transport=udp
qualify=no
srvlookup=no
allowguest=no
nat=no
context=default
alwaysauthreject=yes
t38pt_udptl=yes,maxdatagram=400
registerattempts=0
registertimeout=60
defaultexpiry=3600
maxexpiry=7200
sendrpid=yes
trustrpid=yes
rpid_update=yes
disallow=all
allow=ulaw
allow=alaw

register => 43720XXXXXX:<password>@212.117.203.60/43720XXXXXX

[external-t38](!)
        type=peer
        usereqphone=no
        directmedia=yes
        dtmfmode=rfc2833
        context=trunk
        t38pt_udptl=yes,maxdatagram=400


[SIPCALL_AT](external-t38)
remotesecret=<password>
defaultuser=43720XXXXXX
fromuser=43720XXXXXX
fromdomain=212.117.203.60
host=212.117.203.60

[SIPCALL_AT_IN_1](external-t38)
host=212.117.203.60

[SIPCALL_AT_IN_2](external-t38)
host=212.117.203.60

[SIPCALL_AT_IN_3](external-t38)
host=212.117.203.60

[SIPCALL_AT_IN_4](external-t38)
host=212.117.203.60

[101]
type=friend
secret=<password>
qualify=yes
nat=no
host=dynamic
directmedia=no
context=home


und hier extensions.conf :

Code:
[default]
;exten => _.,1,Hangup

[trunk]
;hier nur INCOMING
exten => 43720XXXXXX,1,Dial(SIP/6005)

[home]
include => intern
include => extern

[intern]
exten => 6005,1,Dial(SIP/6005) ; sip softphone

[extern]
;Wir unterstellen, dass wir in Wien (ONKZ 01) wohnen
:Ortsgespräch
exten => _ZXX.,1,Dial(SIP/SIPCALL_AT/01${EXTEN})
;Nationales Gespräch
exten => _0ZX.,1,Dial(SIP/SIPCALL_AT/${EXTEN})
;Internationales Gespräch
exten => _00ZX.,1,Dial(SIP/SIPCALL_AT/${EXTEN})

Ich muss sagen ich wohne nicht in Wien, sondern Wien Umgebung.


Was mache ich hier falsch? Ich habe schon zu sipcall.at geschrieben und die sagen das die nie ein Paket von Asterisk zu Registrierung bekommen haben.


Kann mir jemand helfen?

Danke :)

//edit by stoney: [CODE] TAGs [/CODE] gesetzt
 
Zuletzt bearbeitet von einem Moderator:
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.