-
Notifications
You must be signed in to change notification settings - Fork 104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multipart incoming SMSes are not concatenated #40
Comments
That would be correct. Handling of concatenated messages requires additional work either inside chan_dongle or by the application handling them (you). Not only it has to keep the messages in a buffer until everything is retrieved, it also has to decide what/when to send when/if a part of the combined message is missing. I don't have the time nor means to code this up for you, but I'd be willing to review and merge a PR. |
I think chan_dongle has to analize incoming SMS, if it is multipart, extract appropriate message fields as sender # and PDU fields as total sms and sms # in the chain and concatenate it. |
Possibly; although I'm not as intimate with all parts of the code as you may think. I just forked it and made a few minor edits. But since I use it the least of everyone here (I don't have a dongle), it would be the least useful to me to create such an addition :) |
I suggest to set the channel variables indicating the number of the SMS part and the number of parts and then concatenate the SMS parts in the dialplan. This is easier to implement. Less changes to the module code. |
The SMS part is actually in the part of ${CMGR}. But I am not sure if it is in the exact location everytime. So it is, by theory possible to do it with the below Pseudocode in dial plan.
I have not gone through all the syntax and functions as I am completely new in Asterisk coding. But I always got some very long SMS so I would like to get rid of it. My current problem is that asterisk seem have no search / find / instr function to determine the position of the the \r\n characters. The CUT function may work in the \n character is considered a valid delimiter but it is not. |
Usefull (may be) link: Send and Receive Concatenated SMS in PDU mode |
This could help you maybe. https://github.com/asiacny/chan-dongle-extended |
Do not try to use chan-dongle-extended. I decided to make the repo private untile I came up with a stable version. The repo of asiacny is a fork of my work that will not run. Regards |
@garronej any updates on this? Is this currently usable? how? |
Yes. It's usable and stable you can use it. Unfortunately it's not open source just yet. I use it as dependency for a larger project and I am not sure I can make it opensource yet without jeopardizing my business. |
thank you for your work. Is this solution work in multiple dongles environment? I have 5 dongles and the traditional code messed up everything by using local file as variable. And if the sms arrived at the same time from different dongles, the situation even worse. Sadly it does happen all the time as the carrier will sometimes broadcast the same messages to all SIM. |
Hey @mcdull |
@garronej is this backward compatible with asterisk-chan-dongle regarding config files? |
Well Now if your question is "can I just install chan-dongle-extended and expect things to work?" Regards |
I downloaded and built git version on March, 09. [Mar 10 13:03:56] ERROR[3400]: json.c:607 ast_json_vpack: Error building JSON from '{s: s, s: s}': Invalid UTF-8 string. #10: /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f) [0x7fb8617fa88f] Additional test show that |
# This is the 1st commit message: Create DONATIONS.txt # This is the commit message wdoekes#2: Update README.md # This is the commit message wdoekes#3: Update DONATIONS.txt # This is the commit message wdoekes#4: Update DONATIONS.txt # This is the commit message wdoekes#5: Update DONATIONS.txt # This is the commit message wdoekes#6: Update chan_quectel.h # This is the commit message wdoekes#7: Update README.md # This is the commit message wdoekes#8: Update cpvt.h # This is the commit message wdoekes#9: Add files via upload # This is the commit message wdoekes#10: Delete DONATIONS.txt # This is the commit message wdoekes#11: Update README.md # This is the commit message wdoekes#12: Update README.md # This is the commit message wdoekes#13: Update README.md # This is the commit message wdoekes#14: Add files via upload # This is the commit message wdoekes#15: Update README.md # This is the commit message wdoekes#16: Update README.md # This is the commit message wdoekes#17: Update README.md # This is the commit message wdoekes#18: Update README.md # This is the commit message wdoekes#19: Update README.md # This is the commit message wdoekes#20: Update README.md # This is the commit message wdoekes#21: Update README.md # This is the commit message wdoekes#22: Update README.md # This is the commit message wdoekes#23: Add files via upload Added Simcom support # This is the commit message wdoekes#24: Update README.md # This is the commit message wdoekes#25: Update README.md # This is the commit message wdoekes#26: Added support for Quectel UAC configuration # This is the commit message wdoekes#27: Conf file when using UAC # This is the commit message wdoekes#28: Update README.md # This is the commit message wdoekes#29: Update README.md # This is the commit message wdoekes#30: Quectel CREG correction chan_dongle code assumes 4 parameters in response to command and 3 for URC. However quectel provides 5 and 4 respectively. This fix helps pass on correct status of registration. # This is the commit message wdoekes#31: No force registration status Due to CREG parse issues, earlier registration status was always kept on, now will show unregistered if not connected to network # This is the commit message wdoekes#32: Create readme.md # This is the commit message wdoekes#33: For compilation with openwrt sdk # This is the commit message wdoekes#34: Support for openwrt sdk compilation # This is the commit message wdoekes#35: Fix for lac and cell id Ref IchthysMaranatha#6 Post fix values may have a trailing double quote for quectel devices # This is the commit message wdoekes#36: Updated call ids for simcom Add call termination for call ids 1 and 2 # This is the commit message wdoekes#37: comment for simcom audio Added default audio port for simcom in comment # This is the commit message wdoekes#38: Integrated ALSA support for UAC Integrated driver for ALSA added, no need for bridging additional Asterisk ALSA channel when using UAC mode. Please use non-ALSA integrated branch if there is no need for UAC and you wish to avoid alsa dependency when compiling and running # This is the commit message wdoekes#39: Update COPYRIGHT.txt Attribute copyright for alsa code copied from chan_alsa.c https://github.com/asterisk/asterisk/blob/master/channels/chan_alsa.c # This is the commit message wdoekes#40: Update README.md # This is the commit message wdoekes#41: Conf file with UAC device support # This is the commit message wdoekes#42: UAC mode conf file # This is the commit message wdoekes#43: Added alsa-lib for compilation # This is the commit message wdoekes#44: Delete Makefile.in # This is the commit message wdoekes#45: alsa-lib dependency addition # This is the commit message wdoekes#46: Fix for simcom audio issues with immediate answer in dialplan # This is the commit message wdoekes#47: Note for Quectel serial audio Added remark to disable gps messages # This is the commit message wdoekes#48: Added note for Pi users # This is the commit message wdoekes#49: Quectel creg formatting fix Removed trailing double quotes in reporting lac/cid # This is the commit message wdoekes#50: add gitattributes # This is the commit message wdoekes#51: Send DTMF using AT command Corrected at command for dtmf generation # This is the commit message wdoekes#52: Fix for busy on call rejection for simcom For those who receive 'busy' additionally on call rejection when dialling out. Author only receives 'no carrier' on rejection. Reported and solved by @mpmc here IchthysMaranatha#22 # This is the commit message wdoekes#53: Removal of redundant closetty # This is the commit message wdoekes#54: Update busy fix for call rejection Updated fix as submitted by @mpmc here IchthysMaranatha#22 Author does not receive busy response on call rejection
There is Asterisk 13.12 at Ubuntu 14.04 LTS no-GUI x64 with Huawei E367 voice enabled with your chan dongle of git version at 20, August, 2017.
Two + received messages are "handled" separated +CMGR command (from Asterisk console I can see it) and are not concatenated to one long SMS.
That is message less than 160 symbols (for latin alphabet) or less than 70 symbols (for cyrillic) is received as one, but if is more than 160 or 70 symbols or some messages more than one, all these messages are not concatenated to one long SMS.
Kannel do so. I tested up for 5 parts.
The text was updated successfully, but these errors were encountered: