hint Funktion nutzen [gelöst]

mad0000

Neuer User
Mitglied seit
18 Mrz 2006
Beiträge
76
Punkte für Reaktionen
0
Punkte
0
Was muss wo geändert/ergänzt werden, damit die hint-Funktion mit dem GXP-2000 funktioniert?

Ziel des ganzen soll sein: die belegten Tasten sollen blinken beim Rufen, leuchten beim besetzt/Hörer abgenommen - eben so wie man es von einer normalen Telefonanlage kennt.

Habe im default Bereich der sip.conf schon:
Code:
[default]
exten => 30,hint,SIP/30
exten => 31,hint,SIP/31
exten => 32,hint,SIP/32
exten => 33,hint,SIP/33

und bei den Sip-Clients in der sip.conf:
Code:
subscribecontext=default

und bei den GXP-2000 keymode: Asterisk BLF und Name und z.B. 32

die Sip-User sehen so aus:
Code:
[33]
callerid=Martin 2 <33>
host=dynamic
domain=mx.XXXXXXXXX.de
nat=yes
type=friend
user=33
secret=XXXXXX
mailbox=33
canreinvite=no
callgroup=1
pickupgroup=1 
incominglimit=1
context=sip-lokal
qualify=yes
subscribecontext=default

Die Lämpchen wollen einfach nicht blinken (auch nicht nach reboot von GXP oder restart vom *). :(

Edit: was vielleicht noch wichtig ist: Program-- 1.0.2.13 Bootloader-- 1.0.2.3

Zwischenupdate: wenn ich beim GXP einstelle in der Advanced configuration "Register Expiration: 1" für 1 Minute (Minimum-Wert), dann wird mit einer Zeitverzögerung von ca. 1 Minute auf dem Einen GXP angezeigt, dass ein anderes SipPhone nicht beim Asterisk angemeldet ist. Besetzt oder so etwas wird nicht bei anderen GXP's gemeldet. Die Signalisierung (also nur Gerät ist an oder aus) erfolgt wohl nur beim Registrieren des GXP am Asterisk?

Edit: Ich glaube die Version Asterisk 1.2.4-BRIstuffed-0.3.0-PRE-1k unterstüzt das gar nicht. Entweder ist es noch nicht im Asterisk implementiert oder bristuff verhindert etwas. Kann es so sein?

Für Asterisk@Home scheint es eine Lösung zu geben:
http://www.jackenhack.com/blog/archives/2005/11/22/setting-up-subscribenotify-blf-in-asteriskhome-for-grandstream-gxp-2000-phones/

Weiß jemand, ob die 1.2.7 hint ordentlich unterstützt?
 
Zuletzt bearbeitet:
Also im Grunde sieht Deine Config soweit richtig aus. Ich hab keinen Bristuffed *, sondern die 1.2.1er auf OpenWRT, daher weiß ich nicht, ob die Bristuff-Patches damit kollidieren - aber versuch doch mal die DevState-Application, die mit Bristuff zum * dazukam; damit kannst Du manuell die BLF LEDs setzen (Ich weiß, ist nicht das was Du eigentlich willst, aber evtl. mal zum Testen?)
 
Hab jetzt alles neu gemacht und Asterisk 1.2.7.1 installiert. Da wird hint schon mal besser unterstützt, denn sofort (fast zeitgleich) bei Registrierung bzw. Abmelden des einen Geräts am Asterisk bekommen die anderen Geräte einen hint und die Lampe geht aus bzw. leuchtet. Alter Stand war: nur bei Registrierung des Gerätes wo die Lämpchen leuchten sollen, wurde der Zustand der anderen Geräte angezeigt und dann erst wieder bei erneuter Registrierung des Gerätes was anzeigt geändert.

UPDATE: wenn man in der sip.conf die User auf type=peer stellt (statt friend) dann leuchtet zusätzlich beim Anrufen und beim Klingeln das LED. Also fast wie bei einer richtigen Business-Telefonanlage. Jedenfalls kann jetzt jeder User sehen, ob er den anderen anrufen bzw. Telefonate weiterleiten kann. Fehlen jetzt nur noch 2 Dinge: blinken beim Klingeln und viel wichtiger: Übernahme beim Klingeln bzw. Übergabe eines laufenden Gesprächs auf Tastendruck.

Wenn ich die englischsprachigen Foren richtig verstanden habe, sind das Funktionen, die noch etwas auf sich warten lassen...
http://forums.digium.com/viewtopic.php?t=891&postdays=0&postorder=asc&highlight=busy+talking+hint&start=50
 
Zuletzt bearbeitet:
mad0000 schrieb:
Hab jetzt alles neu gemacht und Asterisk 1.2.7.1 installiert.
OK - ich habe hier 1.2.7.1-BRIstuffed laufen.

mad0000 schrieb:
UPDATE: wenn man in der sip.conf die User auf type=peer stellt (statt friend) dann leuchtet zusätzlich beim Anrufen und beim Klingeln das LED.
Also das geht bei mir auch alles mit type=friend ... wenn derjenige telefoniert ist die Lampe AN und wenn es bei einem Klingelt blinkt die Lampe.

mad0000 schrieb:
blinken beim Klingeln und viel wichtiger: Übernahme beim Klingeln bzw. Übergabe eines laufenden Gesprächs auf Tastendruck.
Ne, beides geht
- Blinken s.o.
- übernehmen siehe folgendes

Trag in deine extensions.conf einfach das ein:
Code:
exten => _**.,1,PickupChan(SIP/${EXTEN:2})
Denn das GXP-2000 sendet wohl eine SIP-Nachricht mit "**XXX@...." an den Asterisk, sobald man eine der BLF-Tasten drückt, während die Lampe blinkt. Wobei XXX dabei die Extension aus der "Asterisk BLF" Tastenbelegung des GXP ist - und "**" ist wohl die Grandstream-Variante von "gezieltem Pickup".

Habe bislang nichts gefunden, wo ich das "**" hätte ändern können - vielleicht geht das auch gar nicht. Du musst halt aufpassen, dass "**" nirgendwo anders in der extensions.conf oder features.conf verwendet wird.

Alles klar? :noidea:

Ciao
Daniel
 
Das probier ich morgen gleich im Büro /freu/

Wow, sogar Blinken? Die hint-Funktion sieht bei Dir aber schon so aus?:
Code:
exten => 33,hint,SIP/33
 
mad0000 schrieb:
Das probier ich morgen gleich im Büro /freu/

Wow, sogar Blinken? Die hint-Funktion sieht bei Dir aber schon so aus?:
Code:
exten => 33,hint,SIP/33
Genau so - und im GXP-2000 Web-Interface hinterlegst du dann als Tastenbelegung "Asterisk BLF" und die Durchwahl 33 (und nur die, den Rest hängt das Telefon selbst an).

Bei mir klappt das alles - wenn's bei dir nicht funzt, müssen wir die restlichen Extensions und Features durchgehen.
 
:( Wenn ich auf type=friend stelle wird nichtmal mehr angezeigt, dass besetzt ist. Bei type=peer leuchten die LED bei besetzt und nicht online, aber kein Blinken bei mir.

Also hier die Dateien:
komplette sip.conf
Code:
[general]
context=sip-lokal		; Default context for incoming calls
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, Note: Asterisk only uses the first host in SRV records Disabling DNS SRV lookups disables the ability to place SIP calls based on domain names to some other SIP users on the Internet

maxexpiry=3600		; Max length of incoming registration we allow
defaultexpiry=120		; Default length of incoming/outoing registration
;notifymimetype=text/plain	; Allow overriding of mime type in MWI NOTIFY
;checkmwi=10			; Default time between mailbox checks for peers
;vmexten=voicemail      ; dialplan extension to reach mailbox sets the Message-Account in the MWI notify message defaults to "asterisk"

disallow=all			; First disallow all codecs
allow=alaw
allow=ulaw				; Allow codecs in order of preference
allow=gsm
allow=ilbc 
;allow = g729
language=de				; Default language setting for all users/peers, this may also be set for individual users/peers
subscribecontext=default	; Set a specific context for SUBSCRIBE requests
					; Useful to limit subscriptions to local extensions
					; Settable per peer/user also
notifyringing=yes			; Notify subscriptions on RINGING state

[34]
callerid=Martin 34 <34>		; Full caller ID, to override the phones config
host=dynamic
domain=mx.beauty-case.de
nat=yes
nat=no				; there is not NAT between phone and Asterisk
type=peer
;type=friend
user=34
secret=xxxxxxxx
mailbox=34@default		; mailbox 1234 in voicemail context "default"
canreinvite=no
;canreinvite=yes			; allow RTP voice traffic to bypass Asterisk
callgroup=1
pickupgroup=1 
incominglimit=1
;call-limit=1			; permit only 1 outgoing call and 1 incoming call at a time
					; from the phone to asterisk
					; (1 for the explicit peer, 1 for the explicit user,
					; remember that a friend equals 1 peer and 1 user in
					; memory)
context=sip-lokal			; testen ob ohne möglich ,da global
qualify=1000
subscribecontext=default	; testen ob ohne möglich, da global
regexten=34

[33]
callerid=Martin 2 <33>
host=dynamic
domain=mx.beauty-case.de
nat=yes
type=peer
;type=friend
user=33
secret=xxxxxxxx
mailbox=33
canreinvite=no
callgroup=1
pickupgroup=1 
incominglimit=1
context=sip-lokal
qualify=1000
subscribecontext=default
regexten=33

[31]
callerid=Martin <31>
host=dynamic
domain=mx.beauty-case.de
nat=yes
type=peer
;type=friend
user=31
secret=xxxxxxxx
mailbox=31
canreinvite=no
callgroup=1
pickupgroup=1 
incominglimit=1
context=sip-lokal
qualify=yes
subscribecontext=default
regexten=31
;regexten=666		; When they register, create extension 666

[32]
callerid=Martin mobil <32>
host=dynamic
domain=mx.beauty-case.de
nat=yes
type=peer
;type=friend
user=32
secret=xxxxxxxx
mailbox=31
canreinvite=yes
callgroup=1
pickupgroup=1 
incominglimit=1
subscribecontext=default
qualify=1000
context=sip-lokal
regexten=32

[30]
callerid=BC <30>
host=dynamic
domain=mx.beauty-case.de
nat=yes
type=peer
;type=friend
user=30
secret=xxxxxxxx
mailbox=30
canreinvite=no
callgroup=1
pickupgroup=1 
incominglimit=1
context=sip-lokal
qualify=yes
subscribecontext=default
regexten=30
;regexten=666

komplette extension.conf
Code:
[general]
static=yes
writeprotect=no
autofallthrough=yes
language=de
; priorityjumping=yes
; --------------------------------------------------------------------------

[macro-ruf]
exten => s,1,NoOp(Wir sind im Macro ruf gelandet)
exten => s,n,Dial,${ARG1}/${ARG2}|25|r
;exten => s,hint,SIP/${EXTEN}					;noch testen
exten => s,n,Set(LANGUAGE()=eng)
exten => s,n,Goto,s-${DIALSTATUS}|1

;exten => s-BUSY,1,voicemail,b${ARG2}
exten => s-BUSY,n,Hangup

;exten => s-NOANSWER,1,voicemail,u${ARG2}
exten => s-NOANSWER,n,Hangup

exten => s-CHANUNAVAIL,1,NoOp(CHANUNAVAIL ist erreicht)
exten => s-CHANUNAVAIL,n,Dial,SIP/0|30|r
;exten => s-CHANUNAVAIL,n,voicemail,u0
exten => s-CHANUNAVAIL,n,Hangup

exten => s-CONGESTION,1,NoOp(CHANUNAVAIL ist erreicht)
exten => s-CONGESTION,n,Dial,SIP/0|30|r
;exten => s-CONGESTION,n,voicemail,u0
exten => s-CONGESTION,n,Hangup

;Zeile 41;;;;

[sip-lokal]

exten => _ZX,1,NoCDR()
exten => _ZX,n,NoOp(die internen SIP-Rufe)
exten => _ZX,n,Dial,SIP/${EXTEN}
exten => _ZX,n,hangup

exten => 0,1,NoCDR()
exten => 0,n,NoOp(die 0)
exten => 0,n,Dial,SIP/0
exten => 0,n,hangup

exten => _XXX.,1,NoOp(_XXX.)
;exten => _XXX.,n,SetCallerId(460012)
exten => _XXX.,n,Dial(CAPI/contr1/${EXTEN}|60,r)
exten => _XXX.,n,noop(Hangupcause: ${HANGUPCAUSE})
exten => _XXX.,n,Hangup

;eigene mailbox
exten => 88,1,answer
exten => 88,n,wait,1
;exten => 88,n,voicemailmain,${CALLERIDNUM}		; mit Pin-Abfrage
exten => 88,n,voicemailmain,s${CALLERIDNUM}		; ohne Pin-Abfrage
exten => 88,n,hangup

exten => 80,1,answer
exten => 80,n,wait,1
exten => 80,n,voicemailmain					; Mailbox + Pin eingeben
exten => 80,n,hangup

exten => _**.,1,NoOp(Pickup wird versucht)
; exten => _**.,n,Pickup(${EXTEN:2})				; BLF-Taste am Asterisk drücken = ** beim Rufen/Blinken
exten => _**.,1,PickupChan(SIP/${EXTEN:2})

; Notrufe
exten => 112,1,Dial(CAPI/contr1/112,60,r)
exten => 112,n,NoOp(---- N O T R U F  1 1 2 ----)
exten => 112,n,Hangup
exten => 110,1,Dial(CAPI/contr1/110,60,r)
exten => 110,n,NoOp(---- N O T R U F  1 1 0 ----)
exten => 110,n,Hangup
exten => 0112,1,Dial(CAPI/contr1/112,60,r)
exten => 0112,n,NoOp(---- N O T R U F  1 1 2 ----)
exten => 0112,n,Hangup
exten => 0110,1,Dial(CAPI/contr1/110,60,r)
exten => 0110,n,NoOp(---- N O T R U F  1 1 0 ----)
exten => 0110,n,Hangup

[capi-rein]

exten => 460016,1,NoOp(Fax für 16 kommt an)
exten => 460016,n,Dial,SIP/16|30
exten => 460016,n,hangup

exten => 460020,1,NoOp(Fax für 20 kommt an)
exten => 460020,n,Dial,SIP/16|30
exten => 460020,n,hangup

exten => 460035,1,NoOp(Fax für 35 kommt an)
exten => 460035,n,Dial,SIP/16|30
exten => 460035,n,hangup

exten => 460099,1,NoOp(Fax für 99 kommt an)
exten => 460099,n,Dial,SIP/16|30
exten => 460099,n,hangup

;mailbox von außen abfragen auf 460088+Mailboxnummer, mit Abfrage PIN
exten => _460089XX,1,answer
exten => _460089XX,n,Set(LANGUAGE()=de)
exten => _460089XX,n,wait,1
exten => _460089XX,n,voicemailmain,${EXTEN:6}
exten => _460089XX,n,hangup

exten => 46000,1,NoOp(Die Zentralnummer wird jetzt angenommen)
exten => 46000,n,macro,ruf|SIP|${EXTEN:4}|30
exten => 46000,n,NoOp(macro-ruf nach 0 ist durch)
exten => 46000,n,hangup
exten => 46000,n,NoOp(hangup nach X. ist durch)
include => capi-durchwahlen

[capi-durchwahlen]
exten => _4600XX,1,NoOp(Die Nicht-Faxe werden jetzt angenommen)
exten => _4600XX,n,macro,ruf|SIP|${EXTEN:4}|30
exten => _4600XX,n,NoOp(macro-ruf nach X. ist durch)
exten => _4600XX,n,hangup
exten => _4600XX,n,NoOp(hangup nach X. ist durch)

;exten => _4600.,1,macro,ruf|SIP|${EXTEN:4}|30

;incoming fax auf 35
;exten => 460035,1,Wait(3)exten => 52,n,Macro(faxempfang)
;exten => 460035,n,rxfax(${FAXFILE})
;exten => 5460035,n,system("${SCRIPTFILE}" "${CALLERIDNUM}" "${MAILADDR}" "${FAXFILE}")
;exten => 5460035,n,Hangup

;include => denRest
;[denRest]
;exten => _X.,1,NoOp(Hier wird alles andere - numerisch - eingesammelt.)

[macro-faxempfang]
;exten => s,1,Set(SCRIPTFILE=/var/lib/asterisk/scripts/fax2mail)
;exten => s,n,Set(FAXFILE=/var/spool/asterisk/fax/${UNIQUEID})
;exten => s,n,Set(MAILADDR=fax@domain)

[sipgate-raus]
; context zum waehlen abgehender Rufnummern über Sipgate 8004733
;exten => _*1.,1,Dial,SIP/${EXTEN:2}@8004733|55|r

[sipgate-rein]
exten => 8004733,1,macro,ruf|SIP|31|30
; alt: exten => 8004733,1,Dial,SIP/30&SIP/31|5|r
exten => 8004733,n,Goto,r-${DIALSTATUS}|1

exten => r-BUSY,1,voicemail,b31
exten => r-BUSY,2,Hangup

exten => r-NOANSWER,1,voicemail,u31
exten => r-NOANSWER,2,Hangup

[default]
exten =>  0,hint,SIP/0
exten => 10,hint,SIP/10
exten => 12,hint,SIP/12
exten => 13,hint,SIP/13
exten => 30,hint,SIP/30
exten => 31,hint,SIP/31
exten => 32,hint,SIP/32
exten => 33,hint,SIP/33
exten => 34,hint,SIP/34
exten => 40,hint,SIP/40
exten => 46,hint,SIP/46

; alle Geräte können sich gegenseitig anrufen
include => sip-lokal
include => sipgate-rein
include => sipgate-raus
include => capi-rein

komplette features.conf
Code:
;
; Sample Parking configuration
;

[general]
parkext => 700			; What extension to dial to park
parkpos => 701-720		; What extensions to park calls on. These needs to be
				; numeric, as Asterisk starts from the start position
				; and increments with one for the next parked call.
context => parkedcalls		; Which context parked calls are in
;parkingtime => 45		; Number of seconds a call can be parked for 
				; (default is 45 seconds)
;transferdigittimeout => 3	; Number of seconds to wait between digits when transfering a call
;courtesytone = beep		; Sound file to play to the parked caller 
				; when someone dials a parked call
;xfersound = beep		; to indicate an attended transfer is complete
;xferfailsound = beeperr	; to indicate a failed transfer
;adsipark = yes			; if you want ADSI parking announcements
;findslot => next		; Continue to the 'next' free parking space. 
				; Defaults to 'first' available
pickupexten = **		; Configure the pickup extension.  Default is *8
;featuredigittimeout = 500	; Max time (ms) between digits for 
				; feature activation.  Default is 500


[featuremap]
;blindxfer => #1		; Blind transfer
;disconnect => *0		; Disconnect
;automon => *1			; One Touch Record
;atxfer => *2			; Attended transfer

[applicationmap]
; Note that the DYNAMIC_FEATURES channel variable must be set to use the features
; defined here.  The value of DYNAMIC_FEATURES should be the names of the features
; to allow the channel to use separated by '#'.  For example:
;    Set(DYNAMIC_FEATURES=myfeature1#myfeature2#myfeature3)
;
;testfeature => #9,callee,Playback,tt-monkeys	;Play tt-monkeys to 
						;callee if #9 was pressed

Kann sein, dass die normale 1.2.7.1 nicht richtig bei mir funktioniert. Ich habe auch manchmal Komplettabstürze vom Asterisk, blöderweise immmer mitten in Gesprächen. Grund weiß ich noch nicht. Und mpg123 will jetzt auch nicht mehr so richtig, ging aber mit einer alten 1.2.5 Version und 1.2.4 bristuffed auch schon mal.

Am besten ist wohl, ich installier mir mal die bristuffed 1.2.7.1, denn bei Dir funktioniert es mit dem Blinken... Du hast Version 0.3.0-PRE-1o (* 1.2.7.1), oder?
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,695
Beiträge
2,216,692
Mitglieder
371,315
Neuestes Mitglied
jack-mack
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.