Skip to main content

bind_transceiver/
bind_transceiver.rs

1use smpp_codec::common::{BindMode, Npi, Ton};
2use smpp_codec::pdus::BindRequest;
3
4fn main() {
5    println!("=== SMPP Bind Transceiver Example ===");
6
7    // 1. Create a BindTransceiver Request
8    let bind_req = BindRequest::new(
9        1, // Sequence Number
10        BindMode::Transceiver,
11        "my_system_id".to_string(),
12        "password".to_string(),
13    )
14    .with_address_range(Ton::International, Npi::Isdn, "12345".to_string());
15
16    println!("Created PDU: {:?}", bind_req);
17
18    // 2. Encode into bytes
19    let mut buffer = Vec::new();
20    match bind_req.encode(&mut buffer) {
21        Ok(_) => {
22            println!("Encoded successfully! {} bytes", buffer.len());
23            print!("Hex encoded: ");
24            for byte in &buffer {
25                print!("{:02X} ", byte);
26            }
27            println!();
28        }
29        Err(e) => {
30            eprintln!("Failed to encode: {:?}", e);
31        }
32    }
33}