Giter Club home page Giter Club logo

smpp's People

Contributors

ajankovic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

smpp's Issues

Is smpp.Session concurrency safe?

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.

PDU Resp Seq invalid.

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.

Context.sess should be public ?

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

DeliverSM TPS is low while submits are in parallel

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

Session close

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.

How to send Long messages ?

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 ?

Helpers for sending enquire_link in regular intervals

Dear, you made amazing work, are you able to implement?

  1. Helpers for sending enquire_link in regular intervals.

  2. 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.

Retrieve MessageID

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...

Memory Leak

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
.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.