codemonkeykevin / smpp34 Goto Github PK
View Code? Open in Web Editor NEWGolang SMPP package
License: MIT License
Golang SMPP package
License: MIT License
Hello @CodeMonkeyKevin
Interested in getting sponsored development for your SMPP34 GO implementation? please reach out to me at [email protected] to discuss the requirements.
Thank you
Create random PDU generator for testing for PDU delivery_sm/resp and submit_sm/resp
Reflection added upwards of 300ns per per call and should be avoided where possible to keep the lib fast but keeping in mind the ease of use.
According to SMPP v3.4 specification a Transciever has to be able to receive QUERY_SM_RESP pdu, but returns SmppPduErr instead
PR: #22
can't find how to change encoding of message
Can you please advise how adding Optional Parameters should be handled?
Hello, I am new to SMPP with golang. Can you please show how to reconnect if the connection dropped. Appreciate your feedback.
PDU date fields can be 1 or 17 bytes in length. Currently the parser does not account for length larger then 1 byte in these fields.
There's no way of sending UDH data for concatenated sms as described in https://en.wikipedia.org/wiki/Concatenated_SMS#Sending_a_concatenated_SMS_using_a_User_Data_Header
There are other ways like using Sar_* tlv fields or message_payload TLV field for sending concatenated sms but they aren't supported by all smpp servers. Only reliable way is to use UDH headers. Any suggestion on how I might be able to send multiple messages as one big message using this library?
This is probably not a simple task is will create backwards incompatible changes due to fixing ALL_CAPS names and so on.
Added PDU validation checks. Validation should check the PDU fields size, type and length where applicable.
As mentioned in subj.
It seems that currently smpp34 can connect to external entity, but cannot operate in server mode (creating RX/TX/TRX assumes that we connect and act as a client, not a server), eg:
From transceiver.go (receiver and transmitter example are identical):
func NewTransceiver(host string, port int, eli int, bindParams Params) (*Transceiver, error) {
trx := &Transceiver{}
if err := trx.Connect(host, port); err != nil {
return nil, err
}
Is there a workaroung/quick fix to be able to listen for incoming connections and use trx/tx/rx methods?
I get this exception when trying to run trx_example.go
in the examples directory
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x68 pc=0x44d04d]
goroutine 1 [running]:
runtime.panic(0x51e0e0, 0x6a9208)
/usr/local/go/src/pkg/runtime/panic.c:266 +0xb6
github.com/CodeMonkeyKevin/smpp34.(*Smpp).Write(0xc2100390c0, 0x0, 0x0, 0x4, 0xffffffffffffffff)
/home/ubuntu/go/src/github.com/CodeMonkeyKevin/smpp34/smpp.go:261 +0x2d
github.com/CodeMonkeyKevin/smpp34.(*Transceiver).Write(0xc2100390c0, 0x0, 0x0, 0x5, 0x541980)
/home/ubuntu/go/src/github.com/CodeMonkeyKevin/smpp34/transceiver.go:218 +0x42
github.com/CodeMonkeyKevin/smpp34.(*Transceiver).Bind(0xc2100390c0, 0x541980, 0x5, 0x541980, 0x5, ...)
/home/ubuntu/go/src/github.com/CodeMonkeyKevin/smpp34/transceiver.go:43 +0xa9
github.com/CodeMonkeyKevin/smpp34.NewTransceiver(0x54a810, 0xe, 0xc80, 0x5, 0xc21001e360, ...)
/home/ubuntu/go/src/github.com/CodeMonkeyKevin/smpp34/transceiver.go:25 +0x1b5
main.main()
/home/ubuntu/smpp34/examples/trx_example.go:21 +0x224
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.