[asterisk-ss7] F on the end of the number

Kaloyan Kovachev kkovachev at varna.net
Mon Jul 30 05:06:24 CDT 2012

On Sun, 29 Jul 2012 18:18:48 -0300, Marcelo Pacheco <marcelo at m2j.com.br>
> Those who looked up the code might have noticed my "Original code" 
> didn't match libss7.
> I changed digit handling code, so inside libss7 I always use 0...9 A...F

> digits. #->A and *->B translation happens early coming in, and on the 
> way back A-># and B->*. The original #/* conversion scheme in libss7 
> made it impossible to properly use # in libss7 (due to F being ST 
> digit). The other change was to expressed the ST digit properly as 'F' 
> instead of '#', since '#' is now converted to 'A' instead of 'F'.

You are moving the * and # keys to a custom location which may not be
recognized from other exchanges.
The DTMF keypad is defined as 0-9, A-D, * and #, so (as i have done in
https://reviewboard.asterisk.org/r/1653) we have:

case 0xa:
	return 'A';
case 0xb:
	return 'B';
case 0xc:
	return 'C';
case 0xd:
	return 'D';
case 0xe:
	return '*';
case 0xf:
	return '#';

# _is_ the ST digit even if you send F to libss7, it will 0xf over the
link. If you want to send A that's a different story, but it is not '#'.
I have seen some exchanges that threat A (pressed on the phone's keypad)
as hook-flash (for transfers) and B for some other functions (DND, call
forwarding etc.) maybe that is causing the confusion with # and *, but they
are not A and B.

> I'm sending this as food for thought for MattF. Those who would like to 
> pick up the code and use it in production should know exactly what 
> they're doing. This is not meant as a patch for testing/production usage

> at all.

I will add to char2digit() 'f' and 'F' too (like for 0xe), but i think
digit2char() should remain as is

More information about the asterisk-ss7 mailing list