ajankovic / smpp Goto Github PK
View Code? Open in Web Editor NEWGo library for SMPP 3.4
License: MIT License
Go library for SMPP 3.4
License: MIT License
The Send() function acquires a mutex lock when called and releases the lock when it is done with the smpp session. So it appears to be concurrency safe. Can you help me confirm that multiple goroutines can call Send() function concurrently without any issues?
Go libraries are assumed to not be concurrency-safe unless the documentation mentions otherwise. It would be helpful if concurrency safety is mentioned somewhere.
Hello,
In session.go
, in makeTransition()
function, there's a mistake in the case « If sending from SMSC or receiving on ESME ».
In this case and for StateBoundTRx
, the pdu.DeliverSmID
should be allowed instead of pdu.DeliverSmRespID
.
Hi,
I'm able to send submitsm to connected clients.
How to send DeliverSmID to smpp client ??
Thanks in advance.
Hi,
When we are runing in server mode the response to an incoming Submit_sm is invalid. The submit_sm_resp should have sequence number of the original submit_sm but instead it starts from 1, i.e. irrespective of the sequence number of the incoming submit_sm the first submit_sm_resp will always be 1, second one will be 2 and so on.
Hi,
I'm implementing an SMPP server, and my server is waiting for ESME connections.
So I wrote the following handler :
sessConf := smpp.SessionConf{
SystemID: systemID,
Handler: smpp.HandlerFunc(func(ctx *smpp.Context) {
switch ctx.CommandID() {
case pdu.BindTransceiverID:
// store ctx.Sess to reuse it for sending Delivery Receipt and MO
case pdu.SubmitSmID:
// manage MT
}
}),
}
In the case of BindTransceiverID PDU, I would like to be able to store context session, in order to reuse it later (when sending back Delivery Receipt for example). To do that, I should have a way to access to the session of the context. I can create a Pull Request to make it public if you'd like.
Maybe I missed something, but I didn't find a way to send my DeliverSM PDU.
Thanks,
Emmanuel
Hi,
In SMPPServer, if client binds in TRX mode and submit bulk messages to server :
processing DeliverSM to client is low while submissions are in parallel
Submit TPS: 200-400
DeliverSM TPS: 0-20
after submissions, able to process all DRs (50-90 TPS)
but we want the DeliverSM TPS should be half of Submit TPS while submissions are in parallel
Any suggestions please? (tried adjusting sleeps in encode/decode but no use)
Thanks in advance
Hello @ajankovic
We would like to sponsor the development of some features and bug fixes for this project. Please reach out to [email protected] if your interested.
Hi,
The bind disconnects (session shutdown) happening while read happens .It happens only in receiver mode and when receiving the deliversm request pdu only.It is happening at irregular intervals.
The following is the raw byte sequence sent by the sender
0 1 1 57 49 57 49 55 55 49 56 50 54 52 56 0 0 0 73 67 73 79 0 4 1 0 0 0 0 0 0 0 101 105 100 58 48 32 115 117 98 58 48 48 49 32 100 108 118 114 100 58 48 48 49 32 115 117 98 109 105 116 32 100 97 116 101 58 50 48 48 53 49 52 49 49 50 48 32 100 111 110 101 32 100 97 116 101 58 50 48 48 53 49 52 49 49 50 48 32 115 116 97 116 58 68 69 76 73 86 82 68 32 101 114 114 58 48 48 48 32 84 101 120 116 58 84 101 115 116 32 77 115 103 0 30 0 2 48 0 4 39 0 1 2 20 3 0 10 52 52 49 50 51 52 53 54 55 56
And the receiver received
0 1 1 57 49 57 49 55 55 49 56 50 54 52 56 0 0 0 73 67 73 79 0 4 1 0 0 0 0 0 0 0 101 105 100 58 48 32 115 117 98 58 48 48 49 32 100 108 118 114 100 58 48 48 49 32 115 117 98 109 105 116 32 100 97 116 101 58 50 48 48 53 49 49 50 48 32 100 111 110 101 32 100 97 116 101 58 50 48 48 53 49 52 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
And the error was
smpp: pdu length doesn't match read body length 166 != 96.I dont see any issue with the sender.
Any Help urgently required.
Thanks in advance.
Where i can use Message_payload to a long content?
library emplemets only short_message in SubmitSM ? or i can use long text support via Message_Payload in SubmitSM ?
When do we get EOF error while reading the pdu??
Dear, you made amazing work, are you able to implement?
Helpers for sending enquire_link in regular intervals.
If an SMPP entity receives an unrecognized PDU/command, it must return a generic_nack PDU indicating an invalid command_id in the command_status field of the header.
Hi,
How to get MessageID from submitsmresp pdu in client???
resp, err := session.Send(ctx, submitpdu)
From the above statement need to get MessageID from resp...
Hi,
when a message with invalid PDU is submitted, session is shutting down but we want resp,err to be returned without session shutdown. How to handle it??
Thanks in advance
I need secure SMPP Server connections by enabling TLS. Can you please help me in doing so? Thanks in advance
Hi ,
Memory is getting increased when client connection happens.i.e; when Newsession is created...
Note: Only Connection No bind.
Please find the below memory profile using pprof for reference
memissue.pdf
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.