chan-sccp / chan-sccp

Replacement for the SCCP channel driver in Asterisk. Extended features include Shared Lines, Presence / BLF, customizable Feature Buttons, and Custom Device State. Visit our discussion mailing list for help and join us as a developer if you like.
http://sourceforge.net/projects/chan-sccp-b/
Other
177 stars 72 forks source link

CallForward by timeout #486

Closed bknv closed 5 years ago

bknv commented 5 years ago

Hello all. I did not find the option to enable forwarding by timeout. Is it possible to implement this in the module chan-sccp in CLI?

Right now I'm doing it like this, i added options and enable forward in module followme:

Enable: database put AMPUSER/2327/followme grplist 89123456798# - mobile number database put AMPUSER/2327/followme prering 10 - timeout callforward database put AMPUSER/2327/followme strategy ringall - Ring Strategy database put AMPUSER/2327/followme grptime 30 - Ring Time database put AMPUSER/2327/followme ddial DIRECT - Enable followme/forward

Disable: database put AMPUSER/2327/followme ddial EXTENSION

dkgroot commented 5 years ago

I created a branch for this to work on it, called "feature/cfwd_noanswer"

Git Checkout this temporary branch

git pull
git fetch -a
git branch
git checkout feature/cfwd_noanswer
./configure [....]
make -j4 && make install && make reload

move back to develop afterwards:

git checkout develop
dkgroot commented 5 years ago

Note: Because this is an implementation of a new functionality, please take care when testing. If you have a test server (instance) than that would be a good place.

Addition to sccp.conf:

[general]
cfwdnoanswer_timeout = 30     ; default value = 30

I have added cfwdall, cfwdbusy and cfwdnoanswer to the onhook/offhook softkeyset entries.

Channel Variable BYPASS_CFWD / CFWD_NOANSWER: If you set a channel variable BYPASS_CFWD=1 chan-sccp will skip handling the forwarding of calls. It will instead add a comma separated list of noanswer forwards in a new channel variable CFWD_NOANSWER. That way you can use that in the dialplan and perform your own forwarding. This feature has also been available for cfwdAll and chwdBusy for a while.

Warning: Do not use in production yet.

dkgroot commented 5 years ago

Quote: @bknv

@dkgroot Hello. Yes I have Virtual Machine for test. Today i perfomed next step: 1) git pull git fetch -a git branch git checkout feature/cfwd_noanswer ./configure make -j4 && make install && make reload -- And restart core asterisk

2) In sccp.conf adding cfwdnoanswer_timeout = 9

3) In CLI adding : sccp callforward 2883 cfwdnoanswer 2881 Set/Unset CallForward to cfwdNoAnswer:

on line:2883 and device:SEP001B54350F95

4) Test calling on 2883, but after 9 sec, callforward no worked. Did I do everything right?

It looks correct. Did you check if the callforward was actually performed (sccp show line 2883). I set the cfwdnoanswer on the phone. If you set 'sccp debug core, channel, pbx' you should be able to see that the cfwdnoanswer is being schedule while the call is ringing, and later the scheduled command should be executed. On thing is important, namely that 'DIAL(xxx, timeout, xxx) outlasts the cfwdnoanswer_timeout.

dkgroot commented 5 years ago

Found the issue. Pushed: Fix CLI: show device/line callforward info Fix CLI: callforward handling Fix Database update handling related to callforward

dkgroot commented 5 years ago

In CLI adding : sccp callforward 2883 cfwdnoanswer 2881

should have been: sccp callforward 2883 noanswer 2881 or sccp callforward 2883 SEPxxxxx noanswer 2881

dkgroot commented 5 years ago

wiki pages to check/update https://github.com/chan-sccp/chan-sccp/wiki/Button-Configuration https://github.com/chan-sccp/chan-sccp/wiki/CLI-Functions https://github.com/chan-sccp/chan-sccp/wiki/sccp.conf-options https://github.com/chan-sccp/chan-sccp/wiki/Softkeys

dkgroot commented 5 years ago

Branch "feature/cfwd_noanswer" has been merged back into the "develop" branch, and will be deleted shortly.

@bknv thanks you for reporting the feature requirement and checking/testing,

But please do check our wiki and see if there is something that needs a little work.

Closing the issue report for now.