SIP Telefon an 7270, analog/ISDN telefonieren

bischi

Neuer User
Mitglied seit
19 Jun 2006
Beiträge
42
Punkte für Reaktionen
0
Punkte
0
Hallo,

mein Ziel wäre folgendes :

Ich möchte mit einem SIP-Telefon über eine analoge, bzw. ISDN Leitung telefonieren können. Grundsätzlich, funktioniert das überhaupt?

Thematik des Szenarios:

Auf der 7270 hab ich jetzt Asterisk ausgespielt(USB), das scheint auch zu funktionieren. Die 7270 soll an Standort B stehen, das SIP Telefon an Standort A. Die 7270 an Standort B ist DSL-Router, aber OHNE VoIP an einer analogen Leitung. Sprich die Box ist mit der analogen Leitung verbunden und soll ausgehende Gespräche darüber führen.
Jetzt soll an Standort B ein SIP Telefon so gechaltet werden, das es sich mit dem Asterisk auf der 7270 von Standort B verbindet und dann über die analoge Leitung von Standort B ins dortige Festnetz telefoniert. Sprich Sip-Telefon von A telefoniert zum ortstarif ins Festnetz von Standort B.

Ist sowas realisierbar?

Wie gesagt, der Asterisk läuft, aber wie und was ich da jetzt in der sip.conf, extension.conf, der 7270 usw. genau einstellen muss, damit das SIP Phone sich damit verbindet ist mir ein Rätsel...böhmische Dörfer :confused:

Vielleicht erbarmt sich mir ja jemand :)
 
Ja, das ist natuerlich moeglich ...

Wenn sich das SIP-Telefon ueber Internet verbinden soll, dann solltest Du noch folgende Eintraege im sip.conf hinzufuegen.

Code:
externhost=your.dyndns.org
externrefresh=10
localnet=192.168.178.0/255.255.255.0

Hast Du Dir schonmal den Asterisk-Grundkurs von Betateilchen durchgelesen ... ist eine interessante Lektuere, die ich nur empfehlen kann ;-)

Gruss
dynamic
 
Hallo,

danke!

Ich bin jetzt einen Schritt weiter gekommen, habe Asterisk auf dem USB Stick am laufen, 2 IP Telefone (1x physikalisch Elmeg 290, 1x virtuell XLite 3.0) mit Asterisk verbunden, das läuft wunderbar. Kommunikation der Telefone untereinander, sowie das die IP Telefone auch über den analogen Anschluss raustelefonieren können :p

Das einzigste was mir jetzt noch zu meinen Glück fehlt wäre die Möglichkeit ein IP Telefon außerhalb meines Netzwerks an das Asterisk auf der FB zu verbinden.

Wie geht denn das? Dazu muss ich wohl irgendwie der FB sagen das sie den Port 5061 für externe Anfragen freigebensoll? Das wird mir aber verweigert. Was kann ich da tun? Was ist am einfachsten?

-Asterisk auf anderen Port legen? (Wenn ja wie?)
-danisahne mod (noch nie damit gespielt)
- andere Tricks?

Danke!
 
Das einzigste was mir jetzt noch zu meinen Glück fehlt wäre die Möglichkeit ein IP Telefon außerhalb meines Netzwerks an das Asterisk auf der FB zu verbinden.
Genau diesen Fall habe ich in obiger Antwort bereits erklärt ( Du musst natürlich externhost mit Deinem dyndns Account ersetzen )!
Ferner solltest Du Dir auch über die Risiken bewusst sein, da SIP das PW in Plain-Text über das Internet schickt ...

-Asterisk auf anderen Port legen? (Wenn ja wie?)
- In der sip.conf bindport entsprechend ändern als auch den Port und ggf. die rtp-Ports in der FBF ( ar7.cfg ) freigeben
- bzw. wenn Du die voipd Funktionalität der FBF nicht nutzt, einfach den voipd stoppen und dessen Ports ( SIP und RTP ) nutzen ( siehe rtp.conf )!
-danisahne mod (noch nie damit gespielt)
Hat mit Deiner Problematik erstman nichts zu tun, aber unter DS-MOD müsste es auch klappen

Gruß
dynamic
 
Hallo und schönes Wochenende,

ok, danke, da hab ich dich dann falsch verstanden, ich dachte weil du geschrieben hattest "wenn sich das Telefon über Internet verbinden soll meintest du via VoIP telefonieren und dachte nicht das du da schon auf den Fernzugriff eingegangen bist ;-) Sorry

Also die Zeilen hab ich jetzt einfach in die sip.conf eingefügt und angebappst, also meine dyndns adresse die in der fritz!box eingetragen ist angegeben und als localnet 200.100.50.0 eingegeben, da ich die IP der FB auf 200.100.50.1 abgeändert habe.

Muss ich den Port dann trotzdem noch ändern, oder reichen die 3 Zeilen schon um mich mit einem IP Telefon von einem anderen Standort aus zu verbinden?

Danke für deine Hilfe
 
Wenn Du den "voipd" der FBF nicht benutzst kannst Du diesen einfach stoppen und dessen ( bereits in der ar7.cfg freigeschaltete ) Ports nutzen, d.h.:
- bindport=5060 als sip-port in der sip.conf eintragen
- und rtpstart=7078 sowie rtpend=7097 in der rtp.conf

Falls Deine Fritzbox sich jedoch via voipd bei anderen SIP-Providern oder am Asterisk auf der FBF anmeldet, dann geht das natürlich nicht.

In diesem Fall solltest Du:
- bindport auf 5061 als sip-port in der sip.conf eintragen ( default )
- und rtpstart=9078 sowie rtpend=9097 in der rtp.conf ( default )
- in /var/flash/ar7.cfg die entsprechenden Freigaben für 5060 und 7078-7097 einfach für 5061 und 9078-9097 duplizieren

Danach sollte sich Dein SIP-Client auch via Internet anmelden können.

Gruß
dynamic
 
Also andere VoIP Provider braucht es nicht, die Box hätte eigentlich nur eine einzige Bestimmung und das ist als eben als TK-Anlage zu fungieren, an der sich ein IP Telefon, das nicht im selben Netzwerk ist anmelden kann und dann über die analoge Leitung telefoniert.

Deine Tipps habe ich also in der sip.conf und rtp.conf umgesetzt, leider kann sich mein X-Lite Telefon immer noch nicht anmelden (mit dem Elmeg noch nicht versucht, da ich davon ausgehe, das wenn X-Lite schon nciht geht das Elmeg erst recht nicht geht)
Interessanterweise kann sich das X-Lite jetzt gar nicht mehr anmelden, also auch nicht wenn ich als Domain die lokale Adressse, sprich 192.168.178.1:5060 angebe (vor den Änderungen hat das zumindest noch geklappt)
Oder mache ich evtl. etwas bei der Konfiguration des x-Lite falsch? Als Domain habe ich dort meine dyndns adresse angegeben, sowohl auch mal mit meiner vom provider zugeteilten IP Adresse, mal mit Port dahinter, mal ohne ... kam aber immer ein Fehler, mal Fehler 404 - not Found oder Fehler 408- Time request.

Da ich nicht mehr recht weiter weiß, hier mal ein Auszug meiner Konfig Dateien, vielleicht hilft das ja weiter wo mein Fehler liegt:

Konfiguration der 7270 :
Firmware 54.04.55
IP : 192.168.178.1
dyndns : bischtec.dyndns.org (ist in der FB eingetragen)
verbunden mit DSL(Zugangsdaten des Providers eingerichtet) und Festnetz (analog), keinerlei Portfreigaben eingerichtet, W-Lan aus, DECT aus, keine Internetrufnummern eingerichtet, keine Telefone eingerichtet.

sip.conf
Code:
[general]
context=default			; Default context for incoming calls
; port 5060 already used by fritzbox, so use 5061 
; and reconfigure local sip phones (remote sip goes through asterisk!)
;                 ^^^^^
; XLITE in same subnet example config (fritzbox 192.168.222.100) 
; - System Settings / SIP Proxy / Default
;   - Enabled: Yes
;   - Display Name=Username=Auth. User=: 771
;   - Password: 771
;   - Domain/Realm: 192.168.222.100
;   - SIP Proxy: 192.168.222.100:5061
;                                ^^^^
;   - Outbound Proxy: (empty)
;   - Use Outbound Proxy: Never
;   - Send Internal IP: Always
;                       ^^^^^^
;   - Register: Default
; - Advanced System Settings / Audio / Silence Settings
;   - Transmit Silence: Yes

bindport=5060			; UDP Port to bind to (SIP standard port is 5060)
bindaddr=0.0.0.0		; IP address to bind to (0.0.0.0 binds to all)
srvlookup=yes			; Enable DNS SRV lookups on outbound calls
language=de

;using external sip provider
;and coping with dynamic ip address (the entry localnet=127...
;is required if the avm sip client is registered at localhost:5061)
;(idea taken from [email protected])
;externhost=my.dynamic.host
;localnet=127.0.0.0/255.0.0.0
;nat=yes
;canreinvite=no
;localnet=192.168.179.0/255.255.255.0
;register => bluesip/username:[email protected]/sip1
;...(http://www.ip-phone-forum.de/showpost.php?p=500468&postcount=12)

externhost=bischtec.dyndns.org
externrefresh=10
localnet=192.168.178.0/255.255.255.0

[771]
context=sip771
callerid="TestSIP 771" <771>
host=dynamic
domain=192.168.178.1
;nat=yes  
qualify=no                     ; X-Lite is behind a NAT router
type=friend
user=771
secret=771
;mailbox=771
;canreinvite=no                ; Typically set to NO if behind NAT

;regexten=1234                 ; When they register, create extension 1234
;username=xlite1
disallow=all
allow=gsm                     ; GSM consumes far less bandwidth than ulaw
allow=ulaw
allow=alaw

[772]
context=sip772
callerid="TestSIP 772" <772>
host=dynamic
domain=192.168.178.1
;nat=yes                       ; X-Lite is behind a NAT router
type=friend
user=772
secret=772
;mailbox=772
;canreinvite=no                ; Typically set to NO if behind NAT

;regexten=1234                 ; When they register, create extension 1234
;username=xlite1
disallow=all
allow=gsm                     ; GSM consumes far less bandwidth than ulaw
allow=ulaw
allow=alaw

[773]
context=sip773
callerid="TestSIP 773" <773>
host=dynamic
domain=192.168.178.1
;nat=yes                       ; X-Lite is behind a NAT router
type=friend
user=773
secret=773
;mailbox=773
;canreinvite=no                ; Typically set to NO if behind NAT

;regexten=1234                 ; When they register, create extension 1234
;username=xlite1
disallow=all
allow=gsm                     ; GSM consumes far less bandwidth than ulaw
allow=ulaw
allow=alaw

[774]
context=sip774
callerid="TestSIP 774" <774>
host=dynamic
domain=192.168.178.1
;nat=yes                       ; X-Lite is behind a NAT router
type=friend
user=774
secret=774
;mailbox=774
;canreinvite=no                ; Typically set to NO if behind NAT

;regexten=1234                 ; When they register, create extension 1234
;username=xlite1
disallow=all
allow=gsm                     ; GSM consumes far less bandwidth than ulaw
allow=ulaw
allow=alaw

; sip external outgoing
[sip1_out]
type=peer
;username=bluesip/username
;fromuser=username
;secret=password
;host=bluesip.net
;fromdomain=bluesip.net
insecure=port,invite
caninvite=no
canreinvite=no
nat=no
disallow=all
allow=gsm

; sip external incoming
[sip1_in]
type=peer
;fromdomain=bluesip.net
;host=bluesip.net
context=sip_in

rtp.conf
Code:
;
; RTP Configuration
;
[general]
;
; RTP start and RTP end configure start and end addresses
;
; Defaults are rtpstart=5000 and rtpend=31000
; fritzbox voipd uses 7078-7097 (see ar7.cfg)
rtpstart=7078
rtpend=7097
;
; Whether to enable or disable UDP checksums on RTP traffic
;
;rtpchecksums=no
;
; The amount of time a DTMF digit with no 'end' marker should be
; allowed to continue (in 'samples', 1/8000 of a second)
;
;dtmftimeout=3000

extensions.conf
Code:
; ********************************************************************
; asterisk extension config für asterisk auf der Fritz!Box 7050/7170
; ********************************************************************
;   (asterisk 1.2.16 von openwrt.org; chan_capi 1.0.1; chan_sccp-20060408, isdn4kutils:
;    www.spblinux.de/fbox/openwrt/)
; mit besonderem Dank an betateilchen von www.ip-phone-forum.de
; für den asterisk Grundkurs (www.ip-phone-forum.de/showthread.php?t=91217)
; usb installation framework, chan_sccp, careful testing and more contributed by dynamic
; 2006-05, 2006-10, 2007-04, spblinux

; Konzept 
; (WICHTIG: bei ungeschütztem Netzwerk Passwörter in sip.conf, iax.conf ändern!)
; - die MSN für das Festnetz am externen isdn S0 Bus der fritzbox ist in capi.conf
; gehende Rufe:
;  0xxxxxxx für Festnetz Nummer 0xxxxxxx (führende 0 wird mit gewählt)
;  5yyy     intern für ISDN Telefone (am internen S0 Bus, yyy=msn des Telefons)
;  6zzz     remote asterisk (user asterisk2, auf ip Adresse wie unten in [lokal],
;           Passwort steht in iax.conf, beide einstellbar durch cfg_asterisk start)
;  70y      interne SCCP Telefone (701, 702, 703 vorkonfiguriert ->sccp.conf)
;           (SCCP-Verwendung: sccp.conf muss angepasst werden und
;           noload => chan_sccp.so in modules.conf muss entfernt werden)
;  77z      interne SIP Telefone (771, 772, 773, 774 vorkonfiguriert ->sip.conf)
;           (neu 2007-01, dreistellige SIP Nummern, damit analoge Nebenstellen
;           der fritzbox sich problemlos per avm-sipclient am asterisk anmelden
;           koennen; auch fuer isdn intern empfohlen, damit dtmf und Signalisierung
;           funktionieren)
;  8z       interne IAX2 Telefone (81, 82, 83, 84 vorkonfiguriert ->iax.conf)
;  80       Echotest
;  89	    fragt Passwort ab (/var/tmp/asterisk/passwd) und startet Tunnel
;           zebedee2.bin -f /etc/zebedee/zbdr23.conf für telnetd
;  90       Anrufbeantwortertest (Email-Konfiguration in Abschnitt [globals])
;  91       Begruessungsansage fuer Anrufbeantworter aufnehmen
;           (geht bei reboot verloren, wenn nicht per cfg_asterisk usb_install
;           installiert worden ist; /var/lib/asterisk/sounds/VM_MESSAGE.gsm)
;           usb_install auf USB in addons/asterisk/usr/lib/asterisk/sounds)
;  92       Music on hold testen (/var/lib/asterisk/moh bzw. bei usb_install
;           auf USB in addons/asterisk/usr/lib/asterisk/moh)
;  93	    Callthrough testen (Passwort in /var/tmp/asterisk/passwd bzw. bei 
;           usb_install auf USB in addons/asterisk/etc/asterisk/passwd)
;           (fragt Nummer ab und ruft diese Nummer per isdn (controller 1) an;
;           logfile in /var/log/asterisk, bei USB in addons/asterisk/log/asterisk)
;  94       Callback testen (nur fuer in CB_IN_CHANNEL festgelegten Anrufer 
;           und nur auf in CB_OUT_CHANNEL festgelegte Nummer und Rueckruf
;           erfolgt nur, wenn innerhalb von 5 Sekunden aufgelegt wird)
;  95       Call headset
;  99xxxx   fuer voip ueber sip extern nach Nummer xxxx (siehe sip.conf)
; kommende Rufe:
; - Rufe vom Festnetz werden auf msn 31 (isdn intern), 701, 771 und 81 signalisiert
; - Anruf von in CB_IN_CHANNEL definierter externer Rufnummer aus triggert 
;   Callback auf Nummer CB_OUT_CHANNEL (wenn innerhalb von 5 Sekunden aufgelegt wird)
; Anmerkungen:
; - bei den Telefonen 771,..774, 81,..84 ist Nummer=Name=User=Passwort voreingestellt
; - SIP Telefone MÜSSEN asterisk auf Port 5061 ansprechen (-> sip.conf)
;   (oder Port des avm-SIP-clients veraendern: teils per voipd Neustart
;   mit voipd -P 5062, teils durch Aendern von /var/flash/voip.cfg)
; - Telefone am internen S0: die oben genannten Nummern sind als
;   - 9aaaaaa# zu wählen
;   - und es muss auf der Fritzbox ein nicht aktiver Internetprovider existieren
;     z.b. Internetnummer 99
;   - eine Wahlregel in der Fritzbox muss 9 auf "Internetnummer 99" umleiten 
;   (sonst übernimmt/ändert der telefon daemon auf der fritzbox den Anruf...
;   und ohne telefon daemon geht das Rauswählen ins Festnetz nicht)
;   - zudem muss bei Internettelefonie/Erweitert der automatische Fallback
;     ins Festnetz ausgeschaltet sein!
; - WLAN auf der Fritzbox muss/sollte deaktiviert sein, damit genügend RAM für
;   asterisk vorhanden ist
; - getestet auf fritzbox 7050/7170 an ISDN Anschluss
; - für eigene Anpassungen: siehe oben genannter Grundkurs
; - Testversion ohne jede Gewähr (->auf ungewollte Telefonkosten achten!)

[globals]
; gehende Nummer in [festnetz_out]
CAPI_CALLERID=1234567

;Callback (interne extension 94 oder auf CAPI/ISDN1 eingehender Ruf):
;(Triggerung durch Auflegen innerhalb von 5 Sekunden):
CB_IN_CHANNEL=SIP/772
CB_OUT_CHANNEL=SIP/772
;intern (fuer internes ISDN-Telefon mit msn 772; extension 94 waehlbar per 994#):
;CB_IN_CHANNEL=CAPI/ISDN3/772
;CB_OUT_CHANNEL=CAPI/ISDN3/772
;extern 
;CB_IN_CHANNEL=CAPI/ISDN1/0981234567
;CB_OUT_CHANNEL=CAPI/ISDN1/0981234567
CB_CALLERID=Fritzbox <1234567>
CB_WAITTIME=90
CB_CONTEXT=echotest
CB_EXTENSION=80
;CB_CONTEXT=callthroughtest
;CB_EXTENSION=93

MAILER_TO=root@localhost
MAILER_FROM=asterisk@localhost
MAILER_SMTP=smtp.localhost
; smtp user und password nur bei Bedarf eintragen (sonst leer lassen!)
MAILER_USER=
MAILER_PASSWORD=

[general]
static=yes
writeprotect=no

; Macros
[macro-entfernegitter]
; wenn Nummer mit # endet, das # Zeichen abschneiden, als EXTEN2 zurückgeben
; - um am internen isdn S0 der fritzbox asterisk zu erreichen, muss 912...# gewählt werden

exten => s,1,Set(EXTEN2=${IF( $[ ${MACRO_EXTEN:-1} = # ] ? ${MACRO_EXTEN:0:$[${LEN(${MACRO_EXTEN})}-1]} : ${MACRO_EXTEN} )})
;exten => s,n,NoOp(${EVAL(${EXTEN2})} -- ${MACRO_CONTEXT})

; --------------------------------------------------------------------
; f.r interne Funktionen: Echo, Anrufbeantworter ...
[headsettest]
exten => _95!,1,Dial,CELL/headset

;Callback testen
[callbacktest]
exten => _94!,1,noop,callerid=${CALLERID(all)}, channel=${CHANNEL:0:10}, callback_in_channel=${CB_IN_CHANNEL}
exten => _94!,n,gotoif,$["${CHANNEL:0:$[${LEN(${CB_IN_CHANNEL})}-1-${LEN(${CALLERID(num)})}]}" != "${CB_IN_CHANNEL:0:$[${LEN(${CB_IN_CHANNEL})}-1-${LEN(${CALLERID(num)})}]}"]?80
exten => _94!,n,gotoif,$["${CALLERID(num)}" != "${CB_IN_CHANNEL:-${LEN(${CALLERID(num)})}}"]?80
exten => _94!,n,wait,1
exten => _94!,n,goto,callback-wait|s|1

exten => _94!,80,hangup

; nicht per include in lokal aufzunehmen; wird ueber callbacktest aufgerufen.
[callback-wait]
exten => s,1,Set(CB_TRIGGERED=1|g)
exten => s,n,ringing
exten => s,n,wait,5

exten => t,1,Set(CB_TRIGGERED=0|g)
exten => t,n,hangup

exten => h,1,gotoif,$[${CB_TRIGGERED}]?callback-callfile|s|1

; nicht per include in lokal aufzunehmen; wird ueber callbacktest aufgerufen.
[callback-callfile]
exten => s,1,system,echo "Channel: ${CB_OUT_CHANNEL}" >/var/spool/asterisk/call0
exten => s,n,system,echo "CallerID: ${CB_CALLERID}" >>/var/spool/asterisk/call0
exten => s,n,system,echo "WaitTime: ${CB_WAITTIME}" >>/var/spool/asterisk/call0
exten => s,n,system,echo "MaxRetries: 0" >>/var/spool/asterisk/call0
exten => s,n,system,echo "Context: ${CB_CONTEXT}" >>/var/spool/asterisk/call0
exten => s,n,system,echo "Extension: ${CB_EXTENSION}" >>/var/spool/asterisk/call0
exten => s,n,system,mv /var/spool/asterisk/call0 /var/spool/asterisk/outgoing
exten => s,n,system,touch /var/spool/asterisk/outgoing
exten => s,n,goto,100

exten => s,80,wait,5
exten => s,100,hangup


;Callthrough testen
[callthroughtest]
; Prompt caller to authenticate and validate passcode
exten => _93!,1,Goto(callthroughauth,s,1)

; nicht per include in lokal aufzunehmen; wird ueber callthroughtest aufgerufen.
[callthroughauth]
; Prompt caller to authenticate and validate passcode
;exten => _1234567!,1,goto(s,1) 
exten => s,1,answer
exten => s,2,Noop(${CALLERID(num)})
exten => s,3,wait,1
exten => s,4,authenticate,/etc/asterisk/passwd|j

; Log failed authentication and hangup
exten => _93!,105,system,chroot /oldroot echo "${STRFTIME(||%Y-%m-%d_%H-%M-%S)} - ${CALLERID(num)}: Authentication Failed!" >> /var/log/asterisk/callthrough.log
exten => _93!,n,HangUp()

exten => s,5,Goto(callthrough,s,1)

; Log when call has been aborted
exten => h,1,system,chroot /oldroot echo "${STRFTIME(||%Y-%m-%d_%H-%M-%S)} - ${CALLERID(num)}: Call has been aborted at ${STRFTIME(||%Y-%m-%d_%H-%M-%S)}"  >> /var/log/asterisk/callthrough.log

; nicht per include in lokal aufzunehmen; wird ueber callthroughtest aufgerufen.
[callthrough]
; Prompt caller to key-in number to be dialed and to finish with #
exten => s,1,Set(NR=)
exten => s,2,Background(vm-enter-num-to-call)
exten => s,3,Set(TIMEOUT(response)=30)
exten => s,4,WaitExten
exten => _X,1,Set(NR=${NR}${EXTEN})
exten => _X,2,Goto(s,3)

exten => *,1,Goto(s,1)

exten => #,1,NoOp(${NR})
exten => #,2,Playback(vm-dialout)
exten => #,3,NoOP(Dialing Now)
exten => #,4,system,chroot /oldroot echo "${STRFTIME(||%Y-%m-%d_%H-%M-%S)} - ${CALLERID(num)}: Authenticated & dialing ${NR}"  >> /var/log/asterisk/callthrough.log
exten => #,5,NoOp(Dialing ${NR})
exten => #,6,Dial,CAPI/ISDN1/${NR}|55|bd
;exten => #,6,Dial,SIP/${NR}|55|bd
exten => #,n,HangUp()

; Log when connection timed out
exten => t,1,Busy(3)
exten => t,n,system,chroot /oldroot echo "${STRFTIME(||%Y-%m-%d_%H-%M-%S)} - ${CALLERID(num)}: Call to ${NR} timed out."  >> /var/log/asterisk/callthrough.log
exten => t,n,HangUp()

; Log when call has finished
exten => h,1,system,chroot /oldroot echo "${STRFTIME(||%Y-%m-%d_%H-%M-%S)} - ${CALLERID(num)}: Call to ${NR} completed."  >> /var/log/asterisk/callthrough.log

;music on hold testen
[mohtest]
exten => _92!,1,Macro,entfernegitter
exten => _92!,n,answer
exten => _92!,n,wait,1
exten => _92!,n,musiconhold
exten => _92!,n,hangup

;Begruessungsnachricht des Anrufbeantworters aufnehmen
[record_message]
exten => _91!,1,Macro,entfernegitter
exten => _91!,n,answer
exten => _91!,n,wait,1
exten => _91!,n,playback,beep
exten => _91!,n,record,VM_MESSAGE.gsm|3|60
exten => _91!,n,playback,VM_MESSAGE
exten => _91!,n,playback,beep
exten => _91!,n,hangup

;bei usb-Installation werden die Nachrichten vor dem mailen
;auf den usb-Speicher geschrieben (/var/spool/asterisk);
;(Schreiben auf RAM durch Ersetzen von /var/spool/asterisk durch /var/spool)

[recordtest]
; Prompt caller to authenticate and validate passcode
exten => _90!,1,Goto(record,s,1)

; nicht per include in lokal aufzunehmen; wird ueber recordtest aufgerufen.
[record]
exten => s,1,Macro,entfernegitter
exten => s,n,answer,2000
exten => s,n,wait,1
; die gew.hlte Nummer ansagen:
exten => s,n,SayDigits,${EXTEN2}
; Ansagetext vorspielen
exten => s,n,playback,VM_MESSAGE
exten => s,n,set,MSGFILENAME=${CALLERID(num)}-${TIMESTAMP}
exten => s,n,set,MAILER_SUBJECT=Anrufer:${CALLERID(num)} ${STRFTIME(||%Y-%m-%d_%H-%M-%S)}
exten => s,n,record,/var/spool/asterisk/${MSGFILENAME}.WAV|5|60
;exten => s,n,playback,/var/spool/asterisk/${MSGFILENAME}
exten => s,n,hangup

; Nachricht nach Hangup per e-mail versenden und löschen
exten => h,1,gotoif,${MSGFILENAME}?20:48
exten => h,20,system,chroot /oldroot mv /var/spool/asterisk/${MSGFILENAME}.WAV /var/spool/asterisk/${MSGFILENAME}.wav
exten => h,n,gotoif,${MAILER_USER}?40
exten => h,n,system(chroot /oldroot mailer -s "${MAILER_SUBJECT}" -m "${MAILER_SMTP}" -f "${MAILER_FROM}" -t "${MAILER_TO}" -d /var/spool/asterisk/${MSGFILENAME}.wav)
exten => h,n,goto,45
exten => h,40,system(chroot /oldroot mailer -a "${MAILER_USER}" -w "${MAILER_PASSWORD}" -s "${MAILER_SUBJECT}" -m "${MAILER_SMTP}" -f "${MAILER_FROM}" -t "${MAILER_TO}" -d /var/spool/asterisk/${MSGFILENAME}.wav)
exten => h,n,goto,45
; Nachricht bei erfolgreichem Versand loeschen
exten => h,45,gotoif,$[${SYSTEMSTATUS} = SUCCESS]?46:48
exten => h,46,system,chroot /oldroot rm /var/spool/asterisk/${MSGFILENAME}.wav
exten => h,47,goto,49
exten => h,48,NoOp(Hanging up - no message to send)
exten => h,49,NoOp()

[echotest]
exten => _80!,1,Macro,entfernegitter
exten => _80!,n,answer
exten => _80!,n,wait,2
; als Test auf die Spracheinstellung, die gewählte Nummer ansagen:
exten => _80!,n,SayNumber,80
exten => _80!,n,wait,2
exten => _80!,n,playback,demo-echotest
exten => _80!,n,echo
exten => _80!,n,playback,demo-echodone
exten => _80!,n,hangup

[authtest]
exten => _89!,1,Macro,entfernegitter
exten => _89!,n,answer
exten => _89!,n,wait,2
exten => _89!,n,authenticate,/etc/asterisk/passwd
exten => _89!,n,system,zebedee2.bin -f /etc/zebedee/zbdr23.conf
exten => _89!,n,playback,beep
exten => _89!,n,hangup

;
; --------------------------------------------------------------------
; für rausgehende Rufe
;
; Es hat sich als gute Praxis erwiesen, die Inhalte der Datei
; extensions.conf modular aufzubauen. Diese Praxis wollen
; wir auch hier anwenden
;

[lokal]
include => echotest
include => authtest
include => recordtest
include => record_message
include => mohtest
include => callthroughtest
include => callbacktest
include => headsettest

; Erreichbarkeit der Nebenstellen 
; untereinander herstellen

; Erreichbarkeit der Telefone am internen S0 der fritzbox 7050
; (wähle nach S0 intern ohne führende Ziffer 5: 5123 für Telefon mit msn=123)
exten => _5.,1,Dial,CAPI/ISDN3/${EXTEN:1}|55|Tt/b

; remote asterisk
; (wähle nach remote asterisk ohne führende Ziffer 6: 680 echotest remote)
exten => _6X.,1,Dial,IAX2/[email protected]/${EXTEN:1}

; SCCP
exten => _70X,1,Dial,SCCP/${EXTEN}|55|Ttr

; SIP
exten => _77X,1,Dial,SIP/${EXTEN}|55|Ttr

; IAX2
exten => _8[1-9],1,Dial,IAX2/${EXTEN}|55|Ttr

[festnetz_out]
; Raustelefonieren per externen S0 der fritzbox 7050
; wenn Nummer führende Null hat (0 wird mitgewählt!)
; erzwinge default calller id aus capi.conf: /d
; (/d geht nicht; SetCallerID verwenden)
exten => _0X.,1,SetCallerID,${CAPI_CALLERID}
exten => _0X.,n,Dial,CAPI/ISDN1/${EXTEN}|55|Tt/bd

[sip_out]
exten => _99.,1,Dial,SIP/${EXTEN:2}@sip1_out|45|r

; --------------------------------------------------------------------
; für reinkommende Rufe
;
; hier kommt der default-Context, in dem alle Geraete in der
; Grundkonfiguration erstmal laufen.
; Alle Geraete koennen sich gegenseitig anrufen

[default]
include => lokal

[sip771]
include => lokal
include => festnetz_out
include => sip_out

[sip772]
include => lokal
include => festnetz_out
include => sip_out

[sip773]
include => lokal
include => festnetz_out
include => sip_out

[sip774]
include => lokal
include => festnetz_out
include => sip_out

[sccp701]
include => lokal
include => festnetz_out
include => sip_out

[sccp702]
include => lokal
include => festnetz_out
include => sip_out

[sccp703]
include => lokal
include => festnetz_out
include => sip_out

[iax81]
include => lokal
include => festnetz_out
include => sip_out

[iax82]
include => lokal
include => festnetz_out
include => sip_out

[iax83]
include => lokal
include => festnetz_out
include => sip_out

[iax84]
include => lokal
include => festnetz_out
include => sip_out

[asterisk2_in]
include => lokal

; ISDN S0 extern
[capi_in1]
; solange in capi.conf nur auf einer msn Nummer Anrufe angenommen werden
; reicht es, unabhängig von der msn immer auf die
; gewünschten Nebenstellen weiterzuverbinden

; callback?
; (compare number and channel of caller with number and channel in CB_IN_CHANNEL)
exten => _X.,1,noop,callerid_num=${CALLERID(num)}, channel=${CHANNEL}, callback_channel=${CB_IN_CHANNEL}
exten => _X.,n,gotoif,$["${CHANNEL:0:$[${LEN(${CB_IN_CHANNEL})}-1-${LEN(${CALLERID(num)})}]}" != "${CB_IN_CHANNEL:0:$[${LEN(${CB_IN_CHANNEL})}-1-${LEN(${CALLERID(num)})}]}"]?80
exten => _X.,n,gotoif,$["${CALLERID(num)}" != "${CB_IN_CHANNEL:-${LEN(${CALLERID(num)})}}"]?80
exten => _X.,n,goto,callback-wait|s|1

; Bei SCCP SetCalledParty Funktion nutzen um Name und Nummer der jeweiligen angerufenen Nebenstelle(n)
; fuer chan_sccp zu setzen
;exten => _701.,1,SetCalledParty("Home Office" <1234567>)>
;exten => _701.,2,Dial,SIP/771&IAX2/81&SCCP/701&CAPI/ISDN3/31|30|r
; mit sccp:
exten => _X.,80,Dial,SIP/771&IAX2/81&SCCP/701&CAPI/ISDN3/31|30|r
; ohne sccp:
;exten => _X.,80,Dial,SIP/771&IAX2/81&CAPI/ISDN3/31|30|r

; ISDN S0 intern: akzeptiere nur Anrufe mit führender 9
; (entferne die führende 9 und das abschliessende #)
[capi_in3]
exten => _9[1-8]!,1,Macro,entfernegitter
exten => _9[1-8]!,n,Goto,lokal|${EXTEN2:1}|1
exten => _90!,1,Macro,entfernegitter
exten => _90!,n,Goto,festnetz_out|${EXTEN2:1}|1
exten => _99!,n,Goto,sip_out|${EXTEN2:2}|1

[mobile_in]
exten => s,1,noop,${CALLERID(all)}
exten => s,n,Dial,SIP/772
;exten => s,n,goto,echotest|80|1

[sip_in]
exten => sip1,1,noop,${CALLERID(all)}
exten => sip1,n,Dial,SIP/771&IAX2/81&CAPI/ISDN3/31|30|r

capi.conf
Code:
;
; CAPI config
; (1234567 gets replaced by script cfg_asterisk start)
;

; general section

[general]
nationalprefix=0
internationalprefix=00
rxgain=1.0       ;linear receive gain (1.0 = no change)
txgain=1.0       ;linear transmit gain (1.0 = no change)
language=de      ;set default language (en/de...)
;ulaw=yes        ;set this, if you live in u-law world instead of a-law

;jb.....         ;with Asterisk 1.4 you can configure jitterbuffer,
                 ;see Asterisk documentation for all jb* setting available.
;mohinterpret=default ;Asterisk 1.4: default music on hold class when placed on hold.

; interface sections ...
[ISDN1]          ; fritzbox 7050/7170 external S0 (or external analog line: experimental)
ntmode=no      ;if isdn card operates in nt mode, set this to yes
isdnmode=msn     ;'MSN' (point-to-multipoint) or 'DID' (direct inward dial)
incomingmsn=*    ;allow incoming calls to this list of MSNs/DIDs, * = any,
defaultcid=144065  ;set a default caller id to that interface for dial-out,
                 ;this caller id will be used when dial option 'd' is set.
controller=4     ;capi controller number to use (=4: fritzbox 7050/7150 at analog line)
group=1          ;dialout group
softdtmf=off      ;enable/disable software dtmf detection, recommended for AVM cards
relaxdtmf=off     ;in addition to softdtmf, you can use relaxed dtmf detection
accountcode=     ;PBX accountcode to use in CDRs
context=capi_in1  ;context for incoming calls
;holdtype=hold   ;when the PBX puts the call on hold, ISDN HOLD will be used. If
                 ;set to 'local' (default value), no hold is done and the PBX may
                 ;play MOH.
bridge=no      ;native bridging (CAPI line interconnect) if available
devices=2        ;number of concurrent calls on this controller
                 ;(2 makes sense for single BRI, 30 for PRI)


[ISDN3]          ; fritzbox 7050 internal S0
ntmode=yes      ;if isdn card operates in nt mode, set this to yes
isdnmode=did     ;'MSN' (point-to-multipoint) or 'DID' (direct inward dial)
                 ;when using NT-mode, 'DID' should be set in any case
incomingmsn=*    ;allow incoming calls to this list of MSNs/DIDs, * = any
;defaultcid=123  ;set a default caller id to that interface for dial-out,
                 ;this caller id will be used when dial option 'd' is set.
controller=3     ;capi controller number to use
group=3          ;dialout group
softdtmf=off      ;enable/disable software dtmf detection, recommended for AVM cards
relaxdtmf=off     ;in addition to softdtmf, you can use relaxed dtmf detection
accountcode=     ;PBX accountcode to use in CDRs
context=capi_in3  ;context for incoming calls
;holdtype=hold   ;when the PBX puts the call on hold, ISDN HOLD will be used. If
                 ;set to 'local' (default value), no hold is done and the PBX may
                 ;play MOH.
;immediate=yes   ;DID: immediate start of pbx with extension 's' if no digits were
                 ;     received on incoming call (no destination number yet)
                 ;MSN: start pbx on CONNECT_IND and don't wait for SETUP/SENDING-COMPLETE.
                 ;     info like REDIRECTINGNUMBER may be lost, but this is necessary for
                 ;     drivers/pbx/telco which does not send SETUP or SENDING-COMPLETE.
bridge=no      ;native bridging (CAPI line interconnect) if available
devices=2        ;number of concurrent calls on this controller
                 ;(2 makes sense for single BRI, 30 for PRI)


; unused example (reference)
;[ISDN9]          ;this example interface gets name 'ISDN9' and may be any
                 ;name not starting with 'g' or 'contr'.
                 ;Use one interface section for each isdn port!
;ntmode=yes      ;if isdn card operates in nt mode, set this to yes
;isdnmode=did     ;'MSN' (point-to-multipoint) or 'DID' (direct inward dial)
                 ;when using NT-mode, 'DID' should be set in any case
;incomingmsn=8001,8002 ;allow incoming calls to this list of MSNs/DIDs, * = any
;defaultcid=123  ;set a default caller id to that interface for dial-out,
                 ;this caller id will be used when dial option 'd' is set.
;controller=0    ;ISDN4BSD default
;controller=7    ;ISDN4BSD USB default
;controller=1     ;capi controller number of this interface/port
;group=1          ;dialout group
;prefix=0        ;set a prefix to calling number on incoming calls
;softdtmf=on      ;enable/disable software dtmf detection, recommended for AVM cards
;relaxdtmf=on     ;in addition to softdtmf, you can use relaxed dtmf detection
;faxdetect=off    ;enable faxdetection and redirection to EXTEN 'fax' for incoming and/or
                 ;outgoing calls. (default='off', possible values: 'incoming','outgoing','both')
;accountcode=     ;PBX accountcode to use in CDRs
;amaflags=default;AMA flags for CDR ('default', 'omit', 'billing', or 'documentation')
;context=capi_in  ;context for incoming calls
;holdtype=hold   ;when the PBX puts the call on hold, ISDN HOLD will be used. If
                 ;set to 'local' (default value), no hold is done and the PBX may
                 ;play MOH.
;immediate=yes   ;DID: immediate start of pbx with extension 's' if no digits were
                 ;     received on incoming call (no destination number yet)
                 ;MSN: start pbx on CONNECT_IND and don't wait for SETUP/SENDING-COMPLETE.
                 ;     info like REDIRECTINGNUMBER may be lost, but this is necessary for
                 ;     drivers/pbx/telco which does not send SETUP or SENDING-COMPLETE.
;echosquelch=1   ;_VERY_PRIMITIVE_ echo suppression
;echocancel=yes  ;EICON DIVA SERVER (CAPI) echo cancelation (yes=g165)
                 ;(possible values: 'no', 'yes', 'force', 'g164', 'g165') 
;echocancelold=yes;use facility selector 6 instead of correct 8 (necessary for older eicon drivers)
;echotail=64     ;echo cancel tail setting (default=0 for maximum)
;echocancelnlp=1 ;activate non-linear-processing; this improves echo cancel ratio, but might
                 ;incorporate variable gain in the signal path.
;bridge=yes      ;native bridging (CAPI line interconnect) if available
;callgroup=1     ;PBX call group
;pickupgroup=1   ;PBX pickup group (which call groups are we allowed to pickup)
;language=de     ;set language for this device (overwrites default language)
;disallow=all    ;RTP codec selection (valid with Eicon DIVA Server only)
;allow=all       ;RTP codec selection (valid with Eicon DIVA Server only)
;devices=2        ;number of concurrent calls (b-channels) on this controller
                 ;(2 makes sense for single BRI, 30/23 for PRI/T1)
;jb.....         ;with Asterisk 1.4 you can configure jitterbuffer,
                 ;see Asterisk documentation for all jb* setting available.
;mohinterpret=default ;Asterisk 1.4: default music on hold class when placed on hold.
;qsig=on         ;enable use of Q.SIG extensions.

Danke für die viele Mühe !
 
zwei Kleinigkeiten:

1) die fritzbox gibt 33 rtp ports frei (7078-7110)
ar7cfg: "udp 0.0.0.0:7078+32 0.0.0.0:7078"
(steht falsch in der sip.conf)

2) auf die externe ip Adresse kann man gewöhnlich nur von aussen zugreifen,
nicht vom eigenen lan aus.

(der voipd läuft wirklich nicht mehr?)

spblinux
 
@spblinux
1) Guter Hinweis ... war mir gar nicht aufgefallen, dass sich die Anzahl der RTP-Ports von 23 auf 33 erhöht hat. Ist das lediglich auf der 7270 oder in allen neuen FW ?
Müssen wir ggf. auch in den default-configurations anpassen ;-)

@bischi
Mit folgender Konfiguration in der sip.conf, meldet sich mein VPA SIP-Client sowohl via LAN als auch aus dem Internet am Asterisk erfolgreich an ( rote Parameter sind Unterschiede, die ich in meiner conf habe )
Code:
externhost=bischtec.dyndns.org
externrefresh=10
[COLOR=red][B]nat=yes[/B][/COLOR]
[B][COLOR=red]canreinvite=no[/COLOR][/B]
localnet=192.168.178.0/255.255.255.0
 
[771]
context=sip771
callerid="TestSIP 771" <771>
host=dynamic
domain=[B][COLOR=red]bischtec.dyndns.org[/COLOR][/B]
[COLOR=red][B]nat=yes  [/B][/COLOR]
qualify=no                     ; X-Lite is behind a NAT router
type=friend
user=771
secret=771
;mailbox=771
;canreinvite=no                ; Typically set to NO if behind NAT
 
;regexten=1234                 ; When they register, create extension 1234
;username=xlite1
disallow=all
allow=gsm                     ; GSM consumes far less bandwidth than ulaw
allow=ulaw
allow=alaw
Wichtig ist nochmal der Hinweis von spblinux, dass der voipd WIRKLICH NICHT MEHR LÄUFT - ansonsten wird es in keinem Fall funktionieren.
Am besten zuerst voipd daemon wie folgt stoppen:
Code:
voipd -s
und erst im Anschluss den Asterisk starten!

Gruß
dynamic
 
Tausend Dank :groesste:

Jetzt läuft alles so wie gewollt ! Super, danke!

Eine Frage noch, momentan führe ich noch bei jedem Neustart der Box die Scripte per Hand aus, sowie den voipd -s. Ich hab aber gelesen das man das ja auch als autostart Routine einfügen kann. Ich glaube in /var/flash/debug.cfg

Gibt es hier im Forum so ein Script zum Download?

Bis jetzt mache ich also immer per Hand folgendes :

Code:
voipd -s
cd /var
wget http://spblinux.de/fbox.new/7270/rd.ko
insmod rd.ko
wget http://spblinux.de/fbox.new/cfg_asterisk14
chmod +x cfg_asterisk14
./cfg_asterisk14 -x usb_install
cd media/ftp/FlashDISK-Partition-0-1/addons/
.cfg_asterisk14 start
 
Guckst Du hier

Ich spreche mal mit spblinux, dass wir das aktualisierte cfg_asterisk14 Install Script hochladen, welches die rd.ko und auch die Web-If Problematik behebt.

Gruß
dynamic
 
Was bewirkt denn der rd.ko überhaupt? ist das also um asterisk zu installieren, bzw. zu starten nicht zwingend notwendig? An welcher Stelle müsste ich denn den voipd -s befehl ausführen lassen? vor der while Schleife nehme ich an? Ist das so wie ich unten geschrieben habe richtig? Danke

Code:
usb=/var/media/ftp/FlashDISK-Partition-0-1
# "usb" kann alternativ auch auf anderen nichtflüchtigen Speicher verweisen
voipd -s
let i=1
while [ $i -lt 6 ];do
 if [ -d $usb/addons ];then
  INST_DIR=$usb $usb/addons/cfg_asterisk14 -x usb_install
  $usb/addons/cfg_asterisk14 start
  break
 fi
 sleep 5
done
 
Ja, so sieht es recht gut aus :)

Das rd.ko ( ist ein Kernel-Modul, um eine Ramdisk zu öffnen ) wird lediglich bei der Erstinstallation benötigt und nachdem die Files auf Deinem USB-Stick sind, wird der rd.ko nicht mehr genutzt.

Die aktuellste Version von cfg_asterisk14 und die benötigte aktuelle cfg.common kannst Du temporär unter den angegebenen Links runterladen. Darin sind der rd.ko und www Bug behoben. Wird bald auch auf spblinux.de/fbox.new verfügbar sein.

Gruß
dynamic
 
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.