web statisticsweb stats Business Phone Systems Tech Talk Forum - VOIP & Cloud Phone Help

Business Phone Systems

Previous Thread
Next Thread
Print Thread
Rate Thread
Joined: Jul 2006
Posts: 16
jomaha Offline OP
Member
OP Offline
Member
Joined: Jul 2006
Posts: 16
I just had an old voicemail system conk out & am now routing the voicemail ports on a DK424 into fxo ports on an Asterisk system. All calls routed to vm are fowarded from stations on the dk424 and originate on other stations or enter the 424 though a T1.

Asterisk does not listen for D,A & B tones. I have turned PGM31 led 19 & 20 off, but when I turn off led 15 I am getting recordings of the fast-busy-tone (which I assume is referred to as Auto Release) When I leave 15 on, I get occational blank messages - probably due to asterisk-voicemail's silence detection being misled by the D tone.

Is there a way to make the toshiba not generate an auto-release tone and not send extra dtmf tones when the voicemail leaver ends the call (note that no calls are from loop start trunks - so no help with PGM15)?

...or best have the Toshiba's voicemail fxs port simply hangup at the end of the call?

Atcom VoIP Phones
VoIP Demo

Best VoIP Phones Canada


Visit Atcom to get started with your new business VoIP phone system ASAP
Turn up is quick, painless, and can often be done same day.
Let us show you how to do VoIP right, resulting in crystal clear call quality and easy-to-use features that make everyone happy!
Proudly serving Canada from coast to coast.

Joined: Jun 2007
Posts: 627
Member
Offline
Member
Joined: Jun 2007
Posts: 627
Is D tone defined in tones.h ?

Joined: Jun 2007
Posts: 627
Member
Offline
Member
Joined: Jun 2007
Posts: 627
I wonder, never tried

In extension.conf add something like

exten =>D,n,Hangup()

Joined: Jul 2006
Posts: 16
jomaha Offline OP
Member
OP Offline
Member
Joined: Jul 2006
Posts: 16
I see your talking Asterisk. Indeed,
exten =>D,n,Hangup()
works. In fact I'm doing something similar to catch hangups before the call is bridged to the voicemail application. The problem is when the call is bridged (in asterisk) to app_voicemail.so there are 2 pointers passed to the recording function,
char *acceptdtmf = "#";
char *canceldtmf = "";

I could simply change the # to D, however this machine does much more than be a Toshiba Voicemail system so I am working on a patch to have the vm-app accept an extra option (without rewriting the whole program). This is still not going to be a perfect solution as those 2 parameters are not perfect matches to the dtmf A & D functionality.

At any rate, the best solution would be to have the toshiba hang up without sending tones of any type when the call terminates. And for the purposes of this discussion, I am regading it as a Toshiba question (I'll share the patch and voicemail contexts - but should get it working first).

Joined: Jun 2007
Posts: 627
Member
Offline
Member
Joined: Jun 2007
Posts: 627
Ya Toshiba will always give something, The D tone if active. If not, it will just give reorder.

Joined: Jul 2006
Posts: 16
jomaha Offline OP
Member
OP Offline
Member
Joined: Jul 2006
Posts: 16
Yahoo! I came up with an asterisk solution. Turn on LEDs 15,19 & 20 in PGM31 on the Toshiba. I'll post my initial setup here - but it will probably be tweaked and I'll post that at: https://www.voip-info.org/wiki/view/Asterisk-ToshibaStrata

Anyway, by passing the audio through Asterisk's MeetMe application, it can be made to listen for any dtmf tone. This setup currently just hangs up when a 'A', 'B' or 'D' tone arrives but minor modifications (see the 'exten => _[ABD#],1,Hangup()' line) opens up the possibility of going far beyond typical voicemail integration (that is the nature of Asterisk).
Now a couple of notes:
1) Voicmail ports arriving into asterisk are all two digits. You may have to make modifications to use this. They arrive in the vm_from_toshiba context (as defined in zapata.conf).
2) All of my Toshiba extension are in the form 7XXX
3) Asterisk is extremely flexible so regard this as a rough guide.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

In Zapata.conf

callwaitingcallerid=no
threewaycalling=no
transfer=no
usecallerid=no
signalling=fxs_ks
callerid="Voicemail HS trunks" <7000>
context=vm_from_toshiba
group=10
channel => 49-56 ; These are the two digit ports mentioned above. The digit number is important where the ${CHANNEL} variable is referenced.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

These contexts are defined in extensions.conf

[vm_from_toshiba]
exten => s,1,NoCDR()
exten => s,n,wait(.5)
exten => s,n,answer
exten => s,n,SET(TIMEOUT(absolute)=200)
exten => s,n,SET(TIMEOUT(digit)=1.5)
exten => s,n,SET(TIMEOUT(response)=7)
exten => s,n,waitexten(3)
exten => s,n,VoicemailMain()
exten => s,n,hangup
exten => _X.,1,noop(Dialed extension is ${EXTEN})
exten => _X.,n,Gotoif($["${EXTEN:-1}" = "D"]?terminated) ;;Checkout Toshiba seems to be sending a terminator 'D' There may have been a hangup before the whole dtmf string was transmitted.
exten => _X.,n,System(/root/toshiba_error_finder ${EXTEN} &) ;;; This calls a little debugging script - comment it out
exten => _X.,n,Voicemail(9999,u) ;;; There is a mistake on the toshiba forwarding string, let the caller tell me who they were trying to call - comment it out.
exten => _X.,n,wait(1.5)
exten => _X.,n(hu),hangup
exten => _X.,n(terminated),NoCDR()
exten => _X.,n,Voicemail(9999,u)
exten => _X.,n,hangup
exten => _917XXX,1,noop() ;;;;Playback(MW_temp_voicemail_trouble)
exten => _917XXX,n,Goto(hs-vm-with-dtmf-detect,${EXTEN:2},1)
exten => _917XXX,n,Hangup()
exten => _91XXXX,1,System(touch /tmp/vm/old_ext/${EXTEN:2}) ;;;; This is for debuging too
exten => _91XXXX,n,Hangup()
exten => _927XXX,1,VoicemailMain(${EXTEN:2}|s))
exten => _927XXX,n,Hangup()
exten => _92XXXX,1,System(touch /tmp/vm/92/${EXTEN})
exten => _92XXXX,n,Hangup()
exten => T,1,Hangup()

[hs-vm-with-dtmf-detect]
exten => _7XXX,1,System(asterisk -rx "originate Local/${CHANNEL:4:2}@hs-vm-meetme application voicemail \\"${EXTEN}|su\\"")
exten => _7XXX,n,MeetMe(vmd${CHANNEL:4:2},AdFpqXx) ;Meetme mail boxes defined for zap channels 49-56
exten => _7XXX,n,Hangup()
exten => _[ABD#],1,Hangup()
exten => h,1,MeetMeAdmin(vmd${CHANNEL:4:2},K) ;Kick all users out of conference

[hs-vm-meetme]
exten => _X.,1,NoCDR()
exten => _X.,n,Wait(.3) ; give hs-vm-with-dtmf-detect time to create meetme
exten => _X.,n,MeetMe(vmd${EXTEN},q)
exten => _X.,n,Hangup()

[vm_toshiba_log_mwi]
exten => s,1,wait(1.5)
exten => s,n,hangup

[vm_toshiba_set_mwi]
exten => _7XXX,1,Gotoif(${MWI_ON}?on)
exten => _7XXX,n(off),Dial(Zap/52/!#64${EXTEN}|30)
exten => _7XXX,n,wait(1)
exten => _7XXX,n,hangup()
exten => _7XXX,n(on),Dial(Zap/52/!#63${EXTEN}|30)
exten => _7XXX,n,wait(1)
exten => _7XXX,n,hangup()
exten => _x.,1,wait(1)
exten => _x.,n,hangup()

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

In Voicemail.conf:
externnotify = /usr/local/bin/toshiba_notify

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Finally here is the bash script referenced in externalnotify, toshiba_notify (READ THE COMMENTS!):
#!/bin/bash
# Written by John Harragin, Monroe-Woodbury Central-School-District 845-460-6200 x6265
CONTEXT=$1
VM_EXTEN=$2
NUM_MSG=$3
TMP_CALL_FILE=/tmp/vm/${VM_EXTEN}.call
REAL_CALL_FILE=/var/spool/asterisk/outgoing/${VM_EXTEN}.call
# I only want to send notification to phones hosted on the toshiba - not SIP phones.
# if you use this script, I suggest geting rid of the next 4 lines and the fi on the last line - or modify to you needs.
if [ $(grep -E "\[${VM_EXTEN}\]" /etc/asterisk/sip_phones/ConsolidatedSip-70.conf) ] && [ ${CONTEXT} != "default" ];then
echo $(grep -E "\[${VM_EXTEN}\]" /etc/asterisk/sip_phones/ConsolidatedSip-70.conf)
echo "$(date) context=${CONTEXT} VM_EXTEN=${VM_EXTEN} NUM_MSG=${NUM_MSG} - not a HS ext, ignoring." >> /var/log/asterisk/toshiba_vm.log
else
if [ ${NUM_MSG} -le 1 ];then
echo "Channel: Local/${VM_EXTEN}@vm_toshiba_set_mwi
MaxRetries: 4
RetryTime: 90
WaitTime: 30
SET: VM_EXTEN=${VM_EXTEN}
SET: MWI_ON=${NUM_MSG}
Context: vm_toshiba_log_mwi
Extension: s
Priority: 1" > ${TMP_CALL_FILE}
mv ${TMP_CALL_FILE} ${REAL_CALL_FILE}
fi
echo "$(date) context=${CONTEXT} VM_EXTEN=${VM_EXTEN} NUM_MSG=${NUM_MSG}" >> /var/log/asterisk/toshiba_vm.log
fi # This is the line to delete if you read the upper comment.


Moderated by  Carlos#1, phonemeister 

Link Copied to Clipboard
Forum Statistics
Forums84
Topics94,262
Posts638,697
Members49,757
Most Online5,661
May 23rd, 2018
Popular Topics(Views)
211,113 Shoretel
187,717 CTX100 install
186,811 1a2 system
Newest Members
BPopilek, Rich F, LewisR, TDKs79, Buttinset
49,757 Registered Users
Top Posters(30 Days)
dexman 18
Toner 11
TDKs79 7
Who's Online Now
3 members (KRRath, Curlycord, BPopilek), 64 guests, and 408 robots.
Key: Admin, Global Mod, Mod
Contact Us | Sponsored by Atcom: One of the best VoIP Phone Canada Suppliers for your business telephone system!| Terms of Service

Sundance Communications is not affiliated with any of the above manufacturers. Sundance Phone System Forums - VOIP & Cloud Phone Help
©Copyright Sundance Communications 1998-2024
Powered by UBB.threads™ PHP Forum Software 7.7.5