Call.route
From Yate Documentation
(Difference between revisions)
(→Parameters) |
(→Parameters) |
||
Line 22: | Line 22: | ||
;maxcall : Maximum call time until answered (milliseconds), possible values are between 2000 (2 seconds) and 120000 (120 seconds) | ;maxcall : Maximum call time until answered (milliseconds), possible values are between 2000 (2 seconds) and 120000 (120 seconds) | ||
− | + | ===Scenarios=== | |
− | In some cases you may need to return an error with a code and reason to the sender. | + | *In some cases a routing module may decide to add one more parameter to this message and to let message pass to the next routing module. |
+ | |||
+ | *In some cases you may need to return an error with a code and reason to the sender. | ||
===Send a 403 Forbidden=== | ===Send a 403 Forbidden=== |
Revision as of 12:39, 17 December 2012
Message sent by a channel when a new call is coming inwards Yate and a routing decision need be made. The returned value is the logical destination of the call.
Contents |
Sample scenario
- Call comes to (let's say) H.323 module
- H323chan sends a call.route and waits for a returned value
- H323chan sends a call.execute based on the returned value of the call.route
- It gets a call.ringing
- It gets a call.answered
- It hangs up either by a request from the remote H.323 endpoint or from a call.drop or for any other reason.
Parameters
- driver
- The module that makes the request
- id
- The id of the channel
- callername
- Module-specific caller name string
- caller
- The caller id
- called
- The called number
- address
- Module-specific remote endpoint address
- context
- Timeout for the outgoing channel (milliseconds)
- maxcall
- Maximum call time until answered (milliseconds), possible values are between 2000 (2 seconds) and 120000 (120 seconds)
Scenarios
- In some cases a routing module may decide to add one more parameter to this message and to let message pass to the next routing module.
- In some cases you may need to return an error with a code and reason to the sender.
Send a 403 Forbidden
To do that, you have to set the return value of the message to "-" (to a dash)
Then set the parameters called error and reason to forbidden (using setParam() method) to write the error.
e.g.
if (some_condition_met()) { msg.retValue() = "-"; msg.setParam("error", "forbidden"); //will set the SIP message as 403 msg.setParam("reason", "Forbidden"); //The text that appears in the SIP message (403 Forbidden) return true; //make sure no other modules handle the message }
You can use this message to make very complex routing systems based on the information you get.