林 林枫 Unregistered / Unconfirmed GUEST, unregistred user! 2003-07-19 #3 如何判断国内长途与同际长途? 电话号的前2位是'00'的就是国际长途。 电话号的前1位是'0'的就是国际长途,第二位不是'0'的就是国内长途。 是否可以这样判断?? 还有,如何判断市内电话是否是声讯台或普通电话?? 给个思路
如何判断国内长途与同际长途? 电话号的前2位是'00'的就是国际长途。 电话号的前1位是'0'的就是国际长途,第二位不是'0'的就是国内长途。 是否可以这样判断?? 还有,如何判断市内电话是否是声讯台或普通电话?? 给个思路
B barton Unregistered / Unconfirmed GUEST, unregistred user! 2003-07-20 #4 还是我给你思路吧。 判断话单是哪种类型一定是根据被号叫来的。你必须使用用一种被叫号识别技术。告诉你几个关键点: 1.所有的被叫号取前八位,前面加1变成整数;例如 13823456789 -> 113823456 013823456789 -> 101382345 0013823456789 -> 100138234 16899168 -> 116899168 2.内存放一个被叫号字头列表,所有的项也是在前面加过"1"的,并按字头排序,每个项中有五个字段,例如: 字头 被叫地 计费方式 话费率 类别 11 本地 <按时长分计费> 0.2/0.1 市话 1001 美国 <按6秒计费> 2.40/2.40 国际长途 1138 本地手机 <按时长分计费> 0.2/0.1 市话 10138 外地手机 <按6秒计费> 0.10/0.10 国内长途 11680 本地 <按时长分计费> 0.2/0.2 网话 11681 本地 <按时长分计费> 0.2/0.2 网话 11682 本地 <按时长分计费> 0.4/0.4 网话 11683 本地 <按时长分计费> 0.4/0.4 网话 11684 本地 <按时长分计费> 0.6/0.6 网话 11685 本地 <按时长分计费> 0.6/0.6 网话 11686 本地 <按时长分计费> 0.8/0.8 网话 11687 本地 <按时长分计费> 0.8/0.8 网话 11688 本地 <按时长分计费> 1.0/1.0 网话 11689 本地 <按时长分计费> 1.0/1.0 网话 这个字头表编辑的时候可以以类别排序,但在内存中必须以整形的字头排序。 3.处理话单的时候,在字头表中找话单的字头(用二分法),如果找到,按找到的字头项计费。如果找不到,就将话单字头用10整除,然后继续第二轮查找。直到找到为止。例如上面例子中的四个被叫,分别被指定到11、10138、1001、116899四个字头中。注意:同样是168拨号,费用就有五种,你看看电位局的通告。这种通告找一份电信局的宣传单就足够了。一般有交换机或公用电话的地方电信局会主动送的种宣传单的。实在找不到,看看当地电信局的电话号码簿上面肯定很全面。 4.还有可能找不到的。你必须在你的字头表中加以下项,就万无一失: 11~19:每一个字头判定是何种话单,有市话和本地网话两类,计费方式差异较大; 10:国内长途,按最高国内长途计费; 100:国际长途,按最高国际长途计费。 还不明白的话,再继续问。OK?
还是我给你思路吧。 判断话单是哪种类型一定是根据被号叫来的。你必须使用用一种被叫号识别技术。告诉你几个关键点: 1.所有的被叫号取前八位,前面加1变成整数;例如 13823456789 -> 113823456 013823456789 -> 101382345 0013823456789 -> 100138234 16899168 -> 116899168 2.内存放一个被叫号字头列表,所有的项也是在前面加过"1"的,并按字头排序,每个项中有五个字段,例如: 字头 被叫地 计费方式 话费率 类别 11 本地 <按时长分计费> 0.2/0.1 市话 1001 美国 <按6秒计费> 2.40/2.40 国际长途 1138 本地手机 <按时长分计费> 0.2/0.1 市话 10138 外地手机 <按6秒计费> 0.10/0.10 国内长途 11680 本地 <按时长分计费> 0.2/0.2 网话 11681 本地 <按时长分计费> 0.2/0.2 网话 11682 本地 <按时长分计费> 0.4/0.4 网话 11683 本地 <按时长分计费> 0.4/0.4 网话 11684 本地 <按时长分计费> 0.6/0.6 网话 11685 本地 <按时长分计费> 0.6/0.6 网话 11686 本地 <按时长分计费> 0.8/0.8 网话 11687 本地 <按时长分计费> 0.8/0.8 网话 11688 本地 <按时长分计费> 1.0/1.0 网话 11689 本地 <按时长分计费> 1.0/1.0 网话 这个字头表编辑的时候可以以类别排序,但在内存中必须以整形的字头排序。 3.处理话单的时候,在字头表中找话单的字头(用二分法),如果找到,按找到的字头项计费。如果找不到,就将话单字头用10整除,然后继续第二轮查找。直到找到为止。例如上面例子中的四个被叫,分别被指定到11、10138、1001、116899四个字头中。注意:同样是168拨号,费用就有五种,你看看电位局的通告。这种通告找一份电信局的宣传单就足够了。一般有交换机或公用电话的地方电信局会主动送的种宣传单的。实在找不到,看看当地电信局的电话号码簿上面肯定很全面。 4.还有可能找不到的。你必须在你的字头表中加以下项,就万无一失: 11~19:每一个字头判定是何种话单,有市话和本地网话两类,计费方式差异较大; 10:国内长途,按最高国内长途计费; 100:国际长途,按最高国际长途计费。 还不明白的话,再继续问。OK?
林 林枫 Unregistered / Unconfirmed GUEST, unregistred user! 2003-07-20 #5 呵呵,谢谢barton大哥 我懂你说的,但我这里有三个费率表,分别是市内,国内,国际的,可能是出于便于用户改动方便的原因考虑的(是从一个软件里拿到的 :)) 看你上面写的,应该是把所有费率都放在一个表里的,如果是分开的,那怎么判断被叫号是哪个表里的呀?能过前几位能辨出来吗? 还有,你上面说的在被号叫的前8位加1,为什么要加1?,真接查不行吗?
呵呵,谢谢barton大哥 我懂你说的,但我这里有三个费率表,分别是市内,国内,国际的,可能是出于便于用户改动方便的原因考虑的(是从一个软件里拿到的 :)) 看你上面写的,应该是把所有费率都放在一个表里的,如果是分开的,那怎么判断被叫号是哪个表里的呀?能过前几位能辨出来吗? 还有,你上面说的在被号叫的前8位加1,为什么要加1?,真接查不行吗?
B barton Unregistered / Unconfirmed GUEST, unregistred user! 2003-07-20 #6 本来我已经退出了本论坛。可是我还是帮人帮到底吧。 1.费率表合并到一起要很多好处,关键是分析话单的时候方便。通话类别、计费方式一次完成。你想办法将他们合并到一起。这需要你有一点点抽象能力。这样将来计费方式变了你的维护量将很小。 2.被号号取前8位是考虑有些国际长途区号很长,最多的6位,加两个零刚好8位。为什么要加1是在将这个8位长的数字串转换为整数后保持前面的0的个数。我们知道,字串的比较比整数的比较慢得多。特别是一次比较还完不成的时候,整数的比较非常快。这个方法是我从初中中总结出来的,书本上没有的,但非常有效。你用用试试。你知道,实时采话单与流式采话单不同(贝尔机是流式采话单),特别需要高速。有些用户的计费机很破,速度太慢了不好。 判断话单类比较复杂。国际长途为“00”打头,国内长途为“0”打头。而本地网话(市郊电话)和市话就不太好分了。
本来我已经退出了本论坛。可是我还是帮人帮到底吧。 1.费率表合并到一起要很多好处,关键是分析话单的时候方便。通话类别、计费方式一次完成。你想办法将他们合并到一起。这需要你有一点点抽象能力。这样将来计费方式变了你的维护量将很小。 2.被号号取前8位是考虑有些国际长途区号很长,最多的6位,加两个零刚好8位。为什么要加1是在将这个8位长的数字串转换为整数后保持前面的0的个数。我们知道,字串的比较比整数的比较慢得多。特别是一次比较还完不成的时候,整数的比较非常快。这个方法是我从初中中总结出来的,书本上没有的,但非常有效。你用用试试。你知道,实时采话单与流式采话单不同(贝尔机是流式采话单),特别需要高速。有些用户的计费机很破,速度太慢了不好。 判断话单类比较复杂。国际长途为“00”打头,国内长途为“0”打头。而本地网话(市郊电话)和市话就不太好分了。
林 林枫 Unregistered / Unconfirmed GUEST, unregistred user! 2003-07-22 #7 谢谢barton的回答, 你回答的问题都是很详细,我有什么问题还是得请教你呀,现在大富翁上象你这么热心的高手不多了 你说已经退出了本论坛(是什么意思?)
林 林枫 Unregistered / Unconfirmed GUEST, unregistred user! 2003-07-26 #8 大哥:又有问题了 我记得我在查已前的贴子时,好象看到你说过,当在费率表中查不到被叫号时, 如果是国际长途就按国际长途最高价来计费,国内长途则按国内最高价来计。 如果查不到本地号呢? 因为本地号没有规律呀,是不是可按普通话费来计??
大哥:又有问题了 我记得我在查已前的贴子时,好象看到你说过,当在费率表中查不到被叫号时, 如果是国际长途就按国际长途最高价来计费,国内长途则按国内最高价来计。 如果查不到本地号呢? 因为本地号没有规律呀,是不是可按普通话费来计??
L liyongw Unregistered / Unconfirmed GUEST, unregistred user! 2003-07-27 #9 如果查不到本地号,按本地网间通话计算0.5元/分,其实是有规律的,郊县的字头不一样,只要你留心怎会没规律?
林 林枫 Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-05 #10 听说将Rs232接口的2、3针脚短接一下就可以收发数据了 怎么连呀?? 用什么线???
L liyongw Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-07 #11 哥们真行呀,找到省分的好办法了!!^_^ rs232定义:db9 1地 2收 3发 db25 2收 3发 8地 如果23短接,可以自收自发(环路测试),联机还需连接地. 至于怎么连 电烙铁/焊锡/电线. 至于用什么线 你自己瞧着办.但是缝衣服的线不行,我想你总不至于说你找不到一点网线吧?
哥们真行呀,找到省分的好办法了!!^_^ rs232定义:db9 1地 2收 3发 db25 2收 3发 8地 如果23短接,可以自收自发(环路测试),联机还需连接地. 至于怎么连 电烙铁/焊锡/电线. 至于用什么线 你自己瞧着办.但是缝衣服的线不行,我想你总不至于说你找不到一点网线吧?