Author Topic: How to redial  (Read 6847 times)

Qwerty Han{Sindar}

  • Newbie
  • *
  • Posts: 1
    • View Profile
How to redial
« on: December 09, 2015, 11:08:37 AM »
How I can redial to specified number when b-side ends the call.
For example
A ->calling to number 777 -> yate -> calling to number 777 -> B
A -> call start -> yate -> call start ->B
A -> call continue -> yate -> call end -> B
A -> call continue -> yate -> redial for example 888 -> C
A -> call end -> yate -> call end -> C

for example in live situation:
client calling to support, when support end the call, client getting - IVR:
 please press 1 if your problem resolved
 please press 2 ... etc.

or yate will redial to a live person for answering question in live

in call fork I have found examples only for creating calls or timeout but it not exactly what I need.

Monica Tepelus

  • Administrator
  • Full Member
  • *****
  • Posts: 198
    • View Profile
Re: How to redial
« Reply #1 on: January 06, 2016, 05:54:00 AM »

There are various ways to implement this.

1) javascript routing script
Channel.callTo("route to B"); 
Channel.callTo("route to C");

Example of route to B (a resource): sip/sip:B_number@ip:port  (this depends on where the call is routed and the used protocol).
This ways requires the least amount of code but there are few examples.

2) external module that catches call.disconnected for party A and sends call.execute on behalf of A (A's "id" from chan.disconnected )inside chan.masquerade to party C. You can find a lot of examples for this on Yate's mail list.

There could be other ways as well but this 2 are the easiest.