Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - marian

Pages: 1 ... 6 7 [8] 9 10 ... 35
106
Yate users hangout place / Re: place only one leg of call in a conf
« on: April 18, 2018, 02:23:34 AM »
If you want to listen a call (no recording) the conference module is the only one implementing this capability.

107
Yate users hangout place / Re: place only one leg of call in a conf
« on: April 18, 2018, 12:15:29 AM »
What do you want to do:
Have some user in a conference with no voice (listen only)
OR
Record the call
?

108
Yate users hangout place / Re: place only one leg of call in a conf
« on: April 16, 2018, 01:10:00 AM »
It is not possible to connect a call leg to 2 call legs.
If you are connecting a call leg to a conference and you want to keep audio with old leg you must connect the other call leg to the same conference room.

I'm not sure I understand what you want to achieve.
Can you give us more details?

109
conference module does not support making outbound calls.

You need to connect the outbound call leg to conference after started.
You may use some call event to do it (e.g. answer).

You may also use an external script to do it.
Here is an example of javascript function to do it:

function makeCallConf(callto)
{
    var m = new Message("call.execute");
    m.callto = "dumb/";
    m.direct = callto;
    // TODO: Fill other params
    if (m.dispatch()) {
        // Connect outbound call leg to conference
        var masq = new Message("chan.masquerade");
        masq.message = "call.execute";
        masq.id = m.peerid;
        masq.callto = "conf/studio";
        masq.enqueue();
    }
}

110
For chan.masquerade you need to indicate channel id to handle it in 'id' parameter.
If you need to re-execute the call it is useless to put the 'direct' parameter.
When the required call leg will masquerade the call.execute the target module (wavefile) will detect the request is from an existing call leg and will ignore the 'direct' parameter.

If you want to make a completely new call, unrelated to handled message you must enqueue/dispatch a call.execute message (not a chan.masquerade) with parameters listed in the post:
^.*$=dispatch call.execute;callto=wave/play//usr/local/yate/audio.sln;direct=sip/sip:bruce@9.8.7.6;line=localsip

111
Yate users hangout place / Re: string parsing in regexroue
« on: April 11, 2018, 12:55:50 AM »
${id}^sip/\(.*\)$=echo \1

112
Setup a sip account in accfile.
Don't set registrar and server parameters. Set username and password.
This will define an account in sip which won't register to a server.
You may use its credentials when making an outbound call.

^.*$=sip/sip:peter@9.8.7.6;line=your_account_name

113
Other Yate server issues / Re: yate doesn't proxy rtp between legs
« on: April 10, 2018, 02:19:08 AM »
Yate is reporting no packets received by RTP (see param['stats'] = 'PS=0,OS=0,PR=0,OR=0,PL=0').
You should check if traffic is allowed (no firewall) for rtp IPs.

114
Multiple instances are built for 'routing' script only (if configured). Global scripts exist in a single instance only.

A routing script instance is attached to a call leg when a call.preroute/call.route is handled for a channel.
Functions handled: onStartup, onPreroute (if applicable), onExecute, onRinging, onAnswered, onDisconnected. These functions will be called, if implemented, on corresponding channel events. No need to install a message handler for them.
Route event is handled in script main flow.
At all time current call leg id is accessible with Channel.id
For extra events (like DTMFs) you may install a message handler for them.
If you are making outbound calls internally generated you should install a filter matching the peer id.

You may always use a global script.
Keep a list of active calls (track chan.disconnected to remove a call leg from list).
For channel events (ringing, answer ...) you must define your functions and install a handler for them.

115
A new script instance is always created for a script set in routing parameter in javascript.conf.
The Channel variable (along with its functions callJust ...) is available in such script (internally created) and describes the channel the script is attached to.

It is not a good idea to use a timer to generate calls in a such a script for the following reasons:
- Each instance will do it
- If there is no call active no new call will be generated

In a channel script you may use internal pre-defined functions onAnswered() or onDisconnected() to handle channel events. No need to install message handlers.
If you want to use a custom function name you must install a message handler for it.

You should make a decision on using a channel script or a global one.

You may

116

The first usage installs the message handler with a filter for parameter 'id'.
Messages are not routed: if you are installing a filter the internal dispatcher won't call your handler if its filter is not matching.

117
function onChanDisc(msg)
{
   Do something with msg.id
   For re-execute you may send a chan.masquerade
}

Message.install(onChanDisc,"chan.disconnected",100);

118
There is no need to fill the 'id' parameter: the wave module will return its channel id in it along with 'peerid'.

You'll have to track the channel (watch for chan.disconnected) to detect termination and do what you need to do.

119
Yate bugs / Re: yateBTS with BladeRFx40 not working
« on: March 19, 2018, 01:41:37 AM »
Try to change board's firmware to version 1.8.0 (you are using 2.0.0.)

120
Yate users hangout place / Re: Play wave on chan.disconnected
« on: March 01, 2018, 03:16:53 AM »
The incoming call leg won't play any media to calling party if not signaled to do so.

After wave chan is connected (call.execute succeeds) you must send a call.progress (on its behalf) with earlymedia=yes

This may be done by watching for chan.connected messages.

Pages: 1 ... 6 7 [8] 9 10 ... 35