Better Telemetry!!!

I was toying around in app_rpt.c, and I figured out a way to shorten the telemetry down.

NODE XXXXX Connected to node XXXXX

Is now replaced with:

NODE XXXXX Connected

First, go to the app_rpt.c file, located in

/usr/src/utils/astsrc/asterisk/apps

OR

/usr/src/astsrc-1.4.23/asterisk/apps

View the file app_rpt.c and search for this code below:

if (n < 3) return;
if (wait_interval(myrpt, DLY_TELEM, mychannel) == -1) return;
res = saynode(myrpt,mychannel,strs[2]);
if (!res)
res = ast_streamfile(mychannel, “rpt/connected”, mychannel->language);
if (!res)
res = ast_waitstream(mychannel, “”);
else
ast_log(LOG_WARNING, “ast_streamfile failed on %s\n”, mychannel->name);
ast_stopstream(mychannel);
res = ast_streamfile(mychannel, “digits/2”, mychannel->language);
if (!res)
res = ast_waitstream(mychannel, “”);
else
ast_log(LOG_WARNING, “ast_streamfile failed on %s\n”, mychannel->name);
ast_stopstream(mychannel);
saynode(myrpt,mychannel,strs[1]);
return;

Replace That chunk of code with :

if (n < 3) return;
if (wait_interval(myrpt, DLY_TELEM, mychannel) == -1) return;
if (strcmp(strs[1], myrpt->name) == 0)
{
ast_verbose("\nDialed OUT\n");
res = saynode(myrpt,mychannel,strs[2]);
}
else{
ast_verbose("\nDialed IN\n");
res = saynode(myrpt,mychannel,strs[1]);
}
ast_verbose(“Node Connection Test strs[1]=%s ,strs[2]=%s, my_node=%s\n”,strs[1],strs[2], myrpt->name);
if (!res)
res = ast_streamfile(mychannel, “rpt/connected”, mychannel->language);
if (!res)
res = ast_waitstream(mychannel, “”);
else
ast_log(LOG_WARNING, “ast_streamfile failed on %s\n”, mychannel->name);
ast_stopstream(mychannel);
/res = ast_streamfile(mychannel, “digits/2”, mychannel->language);/
if (!res)
res = ast_waitstream(mychannel, “”);
else
ast_log(LOG_WARNING, “ast_streamfile failed on %s\n”, mychannel->name);
ast_stopstream(mychannel);
/saynode(myrpt,mychannel,strs[1]);/
return;

Didn’t finish typing before I hit send.

Once the editing is done, in the asterisk directory, type

./configure

make

make install

If anybody has any comments on how to add it as an option in the rpt.conf file, let me know. The code is pretty dirty at this stage, and it is my first real modification to the source code.

···

On Tue, Feb 28, 2017 at 11:30 PM, Skyler F electricity440@gmail.com wrote:

I was toying around in app_rpt.c, and I figured out a way to shorten the telemetry down.

NODE XXXXX Connected to node XXXXX

Is now replaced with:

NODE XXXXX Connected

First, go to the app_rpt.c file, located in

/usr/src/utils/astsrc/asterisk/apps

OR

/usr/src/astsrc-1.4.23/asterisk/apps

View the file app_rpt.c and search for this code below:

Replace That chunk of code with :

if (n < 3) return;
if (wait_interval(myrpt, DLY_TELEM, mychannel) == -1) return;
res = saynode(myrpt,mychannel,strs[2]);
if (!res)
res = ast_streamfile(mychannel, “rpt/connected”, mychannel->language);
if (!res)
res = ast_waitstream(mychannel, “”);
else
ast_log(LOG_WARNING, “ast_streamfile failed on %s\n”, mychannel->name);
ast_stopstream(mychannel);
res = ast_streamfile(mychannel, “digits/2”, mychannel->language);
if (!res)
res = ast_waitstream(mychannel, “”);
else
ast_log(LOG_WARNING, “ast_streamfile failed on %s\n”, mychannel->name);
ast_stopstream(mychannel);
saynode(myrpt,mychannel,strs[1]);
return;if (n < 3) return;
if (wait_interval(myrpt, DLY_TELEM, mychannel) == -1) return;
if (strcmp(strs[1], myrpt->name) == 0)
{
ast_verbose(“\nDialed OUT\n”);
res = saynode(myrpt,mychannel,strs[2]);
}
else{
ast_verbose(“\nDialed IN\n”);
res = saynode(myrpt,mychannel,strs[1]);
}
ast_verbose(“Node Connection Test strs[1]=%s ,strs[2]=%s, my_node=%s\n”,strs[1],strs[2], myrpt->name);
if (!res)
res = ast_streamfile(mychannel, “rpt/connected”, mychannel->language);
if (!res)
res = ast_waitstream(mychannel, “”);
else
ast_log(LOG_WARNING, “ast_streamfile failed on %s\n”, mychannel->name);
ast_stopstream(mychannel);
/res = ast_streamfile(mychannel, “digits/2”, mychannel->language);/
if (!res)
res = ast_waitstream(mychannel, “”);
else
ast_log(LOG_WARNING, “ast_streamfile failed on %s\n”, mychannel->name);
ast_stopstream(mychannel);
/saynode(myrpt,mychannel,strs[1]);/
return;

Skyler Fennell
amsatnet.info

KDØWHB

electricity440@gmail.com

While reading an email from another VoIP email reflector, I got to thinking about some of the codecs we use.

Perusing through the iax.conf through a few allstar network linking distros, each seem to have their own preferred set of codecs.

I'm rather disturbed that iLBC and speex remains in any of them, while I'm sure for compatibility of older installations. However, low quality bandwidth codes sounds no better than echo-stink. This is one of the reason why we use Allstarlink, for better audio quality, is it not?

As I connect to different allstar nodes throughout the world, more-so in the US, some are using iLBC or gsm... and a majority are hub nodes. This to me, is unacceptable, and appears the codec being used are whatever the allstar box has been packaged with.

So, given than I'm not a Steve Henke or Steve Zingman, but I want to ensure that I'm doing my part to achieve high fidelity through g711 codec and proper URI <-> radio hardware interfacing techniques.

Which stanza in the iax.conf is for out-going connections?

I was under the impression [radio-proxy] was, however, when a node with:
disallow=all
allow=ulaw
allow=g726aal2
allow=gsm

connects to my node which has the *same* key=value pairs under [radio] stanza, I got the message something along the lines of:

connected: IP
codes available: g726aal2/gsm
host codecs available: ulaw|g726aal2|gsm|ilbc
actual codec: g726aal
...

bost sides do not have ilbc *anywhere*. The codec has been removed/deleted. Why does it still show up?

What is the ultimate deciding factor of which codec is used if both side have codecpriority=mine?

~Benjamin, KB9LFZ

I believe the receive side of the connection determines the codec. You can’t force it on the other end.

Do you have a [radio] stanza in one of your node? Maybe that’s where iLBC is.

···

On Mon, Mar 6, 2017 at 4:52 PM, Benjamin L. Naber benjamin@project23d.com wrote:

While reading an email from another VoIP email reflector, I got to thinking about some of the codecs we use.

Perusing through the iax.conf through a few allstar network linking distros, each seem to have their own preferred set of codecs.

I’m rather disturbed that iLBC and speex remains in any of them, while I’m sure for compatibility of older installations. However, low quality bandwidth codes sounds no better than echo-stink. This is one of the reason why we use Allstarlink, for better audio quality, is it not?

As I connect to different allstar nodes throughout the world, more-so in the US, some are using iLBC or gsm… and a majority are hub nodes. This to me, is unacceptable, and appears the codec being used are whatever the allstar box has been packaged with.

So, given than I’m not a Steve Henke or Steve Zingman, but I want to ensure that I’m doing my part to achieve high fidelity through g711 codec and proper URI ↔ radio hardware interfacing techniques.

Which stanza in the iax.conf is for out-going connections?

I was under the impression [radio-proxy] was, however, when a node with:

disallow=all

allow=ulaw

allow=g726aal2

allow=gsm

connects to my node which has the same key=value pairs under [radio] stanza, I got the message something along the lines of:

connected: IP

codes available: g726aal2/gsm

host codecs available: ulaw|g726aal2|gsm|ilbc

actual codec: g726aal

bost sides do not have ilbc anywhere. The codec has been removed/deleted. Why does it still show up?

What is the ultimate deciding factor of which codec is used if both side have codecpriority=mine?

~Benjamin, KB9LFZ


App_rpt-users mailing list

App_rpt-users@lists.allstarlink.org

http://lists.allstarlink.org/cgi-bin/mailman/listinfo/app_rpt-users

To unsubscribe from this list please visit http://lists.allstarlink.org/cgi-bin/mailman/listinfo/app_rpt-users and scroll down to the bottom of the page. Enter your email address and press the “Unsubscribe or edit options button”

You do not need a password to unsubscribe, you can do it via email confirmation. If you have trouble unsubscribing, please send a message to the list detailing the problem.

Tim

That’s correct in asterisk world you give a group of codecs that you would like to use but your connection is a negotiation of what the other end is using… you can prioritize but can’t choose one.

Shuler Burton

···

On Mar 6, 2017, at 11:36 PM, Tim Sawyer tisawyer@gmail.com wrote:

Allstarlink

Not necessarly. This depends on available bandwidth :wink:

We have distributed repeaters and a central hub. We're using high quality / high bandwidth for interlinks between repeaters and the hub. But the hub also accepts IAX2 connections from 3G/mobile users (using softphones such as Zoiper). When mobile network is poor, or when driving, using low-bandwidth codecs such as iLBC or Speex does have a sense. Codec can be choosen by users on the client side.

···

Le 07/03/2017 à 01:52, Benjamin L. Naber a écrit :

I'm rather disturbed that iLBC and speex remains in any of them, while I'm sure for compatibility of older installations. However, low quality bandwidth codes sounds no better than echo-stink. This is one of the reason why we use Allstarlink, for better audio quality, is it not?