Documentation
¶
Overview ¶
Package hilink provides a Hilink WebUI client.
Index ¶
- Constants
- func ErrorCodeMap() map[int]string
- func ErrorMessageFromString(code string) string
- func SimpleRequestXML(vals ...string) []byte
- type Client
- func (cl *Client) AutorunVersion(ctx context.Context) (string, error)
- func (cl *Client) Connect(ctx context.Context) (bool, error)
- func (cl *Client) ConnectionInfo(ctx context.Context) (XMLData, error)
- func (cl *Client) CradleMAC(ctx context.Context) (string, error)
- func (cl *Client) CradleMACSet(ctx context.Context, addr string) (bool, error)
- func (cl *Client) CradleStatusInfo(ctx context.Context) (XMLData, error)
- func (cl *Client) DdnsList(ctx context.Context) (XMLData, error)
- func (cl *Client) DeviceBackup(ctx context.Context) (string, error)
- func (cl *Client) DeviceBasicInfo(ctx context.Context) (XMLData, error)
- func (cl *Client) DeviceConfig(ctx context.Context) (XMLData, error)
- func (cl *Client) DeviceControl(ctx context.Context, code uint) (bool, error)
- func (cl *Client) DeviceFeatures(ctx context.Context) (XMLData, error)
- func (cl *Client) DeviceInfo(ctx context.Context) (XMLData, error)
- func (cl *Client) DeviceModeSet(ctx context.Context, mode uint) (bool, error)
- func (cl *Client) DeviceReboot(ctx context.Context) (bool, error)
- func (cl *Client) DeviceReset(ctx context.Context) (bool, error)
- func (cl *Client) DeviceShutdown(ctx context.Context) (bool, error)
- func (cl *Client) DhcpConfig(ctx context.Context) (XMLData, error)
- func (cl *Client) Disconnect(ctx context.Context) (bool, error)
- func (cl *Client) DmzConfig(ctx context.Context) (XMLData, error)
- func (cl *Client) DmzConfigSet(ctx context.Context, enabled bool, dmzIPAddress string) (bool, error)
- func (cl *Client) Do(ctx context.Context, path string, v interface{}) (XMLData, error)
- func (cl *Client) FastbootFeatures(ctx context.Context) (XMLData, error)
- func (cl *Client) FirewallFeatures(ctx context.Context) (XMLData, error)
- func (cl *Client) GlobalConfig(ctx context.Context) (XMLData, error)
- func (cl *Client) GlobalFeatures(ctx context.Context) (XMLData, error)
- func (cl *Client) Language(ctx context.Context) (string, error)
- func (cl *Client) LanguageSet(ctx context.Context, lang string) (bool, error)
- func (cl *Client) LogInfo(ctx context.Context) (XMLData, error)
- func (cl *Client) LogPath(ctx context.Context) (string, error)
- func (cl *Client) ModeInfo(ctx context.Context) (XMLData, error)
- func (cl *Client) ModeList(ctx context.Context) (XMLData, error)
- func (cl *Client) ModeNetworkInfo(ctx context.Context) (XMLData, error)
- func (cl *Client) ModeSet(ctx context.Context, netMode, netBand, lteBand string) (bool, error)
- func (cl *Client) MonthInfo(ctx context.Context) (XMLData, error)
- func (cl *Client) NatType(ctx context.Context) (XMLData, error)
- func (cl *Client) NatTypeSet(ctx context.Context, ntype uint) (bool, error)
- func (cl *Client) NetworkInfo(ctx context.Context) (XMLData, error)
- func (cl *Client) NetworkTypes(ctx context.Context) (XMLData, error)
- func (cl *Client) NewSessionAndTokenID(ctx context.Context) (string, string, error)
- func (cl *Client) NotificationInfo(ctx context.Context) (XMLData, error)
- func (cl *Client) PCAssistantConfig(ctx context.Context) (XMLData, error)
- func (cl *Client) PhonebookCount(ctx context.Context) (XMLData, error)
- func (cl *Client) PhonebookCreate(ctx context.Context, group uint, name, phone string, sim bool) (XMLData, error)
- func (cl *Client) PhonebookDelete(ctx context.Context, id uint) (bool, error)
- func (cl *Client) PhonebookGroupList(ctx context.Context, page, count uint, sortByName, ascending bool) (XMLData, error)
- func (cl *Client) PhonebookImport(ctx context.Context, group uint) (XMLData, error)
- func (cl *Client) PhonebookList(ctx context.Context, group, page, count uint, sim, sortByName, ascending bool, ...) (XMLData, error)
- func (cl *Client) PinActivate(ctx context.Context, pin string) (bool, error)
- func (cl *Client) PinChange(ctx context.Context, pin, new string) (bool, error)
- func (cl *Client) PinDeactivate(ctx context.Context, pin string) (bool, error)
- func (cl *Client) PinEnter(ctx context.Context, pin string) (bool, error)
- func (cl *Client) PinEnterPuk(ctx context.Context, puk, new string) (bool, error)
- func (cl *Client) PinInfo(ctx context.Context) (XMLData, error)
- func (cl *Client) PinSaveInfo(ctx context.Context) (XMLData, error)
- func (cl *Client) PinSimlockInfo(ctx context.Context) (XMLData, error)
- func (cl *Client) PowerFeatures(ctx context.Context) (XMLData, error)
- func (cl *Client) ProfileInfo(ctx context.Context) (XMLData, error)
- func (cl *Client) PublicKey(ctx context.Context) (string, error)
- func (cl *Client) SetSessionAndTokenID(sessionID, tokenID string) error
- func (cl *Client) SignalInfo(ctx context.Context) (XMLData, error)
- func (cl *Client) SimInfo(ctx context.Context) (XMLData, error)
- func (cl *Client) SipAlg(ctx context.Context) (XMLData, error)
- func (cl *Client) SipAlgSet(ctx context.Context, port uint, enabled bool) (bool, error)
- func (cl *Client) SmsConfig(ctx context.Context) (XMLData, error)
- func (cl *Client) SmsCount(ctx context.Context) (XMLData, error)
- func (cl *Client) SmsDelete(ctx context.Context, id uint) (bool, error)
- func (cl *Client) SmsFeatures(ctx context.Context) (XMLData, error)
- func (cl *Client) SmsList(ctx context.Context, boxType, page, count uint, ...) (XMLData, error)
- func (cl *Client) SmsReadSet(ctx context.Context, id string) (bool, error)
- func (cl *Client) SmsSend(ctx context.Context, msg string, to ...string) (bool, error)
- func (cl *Client) SmsSendStatus(ctx context.Context) (XMLData, error)
- func (cl *Client) StatusInfo(ctx context.Context) (XMLData, error)
- func (cl *Client) TetheringFeatures(ctx context.Context) (XMLData, error)
- func (cl *Client) TrafficClear(ctx context.Context) (bool, error)
- func (cl *Client) TrafficInfo(ctx context.Context) (XMLData, error)
- func (cl *Client) Upnp(ctx context.Context) (XMLData, error)
- func (cl *Client) UpnpSet(ctx context.Context, enabled bool) (bool, error)
- func (cl *Client) UssdCode(ctx context.Context, code string) (bool, error)
- func (cl *Client) UssdContent(ctx context.Context) (string, error)
- func (cl *Client) UssdRelease(ctx context.Context) (bool, error)
- func (cl *Client) UssdStatus(ctx context.Context) (UssdState, error)
- func (cl *Client) WebUIConfig(ctx context.Context) (XMLData, error)
- func (cl *Client) WifiFeatures(ctx context.Context) (XMLData, error)
- func (cl *Client) WlanConfig(ctx context.Context) (XMLData, error)
- func (cl *Client) WlanMonthInfo(ctx context.Context) (XMLData, error)
- type ClientOption
- func WithAuth(id, pw string) ClientOption
- func WithHTTPClient(client *http.Client) ClientOption
- func WithLogf(logf func(string, ...interface{})) ClientOption
- func WithNoStart(nostart bool) ClientOption
- func WithTimeout(timeout time.Duration) ClientOption
- func WithTransport(transport http.RoundTripper) ClientOption
- func WithURL(endpoint string) ClientOption
- type Error
- type PinType
- type SmsBoxType
- type UssdState
- type XMLData
Constants ¶
const ( // DefaultURL is the default URL endpoint for the Hilink WebUI. DefaultURL = "http://192.168.8.1/" // DefaultTimeout is the default timeout. DefaultTimeout = 10 * time.Second // TokenHeader is the header used by the WebUI for CSRF tokens. TokenHeader = "__RequestVerificationToken" )
Variables ¶
This section is empty.
Functions ¶
func ErrorCodeMap ¶
ErrorCodeMap contains the known message strings for Hilink devices.
func ErrorMessageFromString ¶
ErrorMessageFromString returns the error message from a string version of the error code.
func SimpleRequestXML ¶
SimpleRequestXML creates an XML string from value pairs.
Unfortunately the XML parser (or whatever underyling code) included with the WebUI on Hilink devices expects parameters in a specific order. This makes packages like mxj or other map based solutions not feasible for use, as Go has random key ordering for maps.
On another note, XML sucks.
Types ¶
type Client ¶
Client represents a Hilink client connection.
func NewClient ¶
func NewClient(opts ...ClientOption) *Client
NewClient creates a new client a Hilink device.
func (*Client) AutorunVersion ¶
AutorunVersion retrieves device autorun version.
func (*Client) ConnectionInfo ¶
ConnectionInfo retrieves connection (dialup) information.
func (*Client) CradleMACSet ¶
CradleMACSet sets the MAC address for the cradle.
func (*Client) CradleStatusInfo ¶
CradleStatusInfo retrieves cradle status information.
func (*Client) DeviceBackup ¶
DeviceBackup backups device configuration and retrieves backed up configuration data as a base64 encoded string.
func (*Client) DeviceBasicInfo ¶
DeviceBasicInfo retrieves basic device information.
func (*Client) DeviceConfig ¶
DeviceConfig retrieves device configuration.
func (*Client) DeviceControl ¶
DeviceControl sends a control code to the device.
func (*Client) DeviceFeatures ¶
DeviceFeatures retrieves device feature information.
func (*Client) DeviceInfo ¶
DeviceInfo retrieves general device information.
func (*Client) DeviceModeSet ¶
DeviceModeSet sets the device mode (0-project, 1-debug).
func (*Client) DeviceReboot ¶
DeviceReboot restarts the device.
func (*Client) DeviceReset ¶
DeviceReset resets the device configuration.
func (*Client) DeviceShutdown ¶
DeviceShutdown shuts down the device.
func (*Client) DhcpConfig ¶
DhcpConfig retrieves DHCP configuration.
func (*Client) Disconnect ¶
Disconnect disconnects the Hilink device from the network provider.
func (*Client) DmzConfigSet ¶
func (cl *Client) DmzConfigSet(ctx context.Context, enabled bool, dmzIPAddress string) (bool, error)
DmzConfigSet enables or disables the DMZ and the DMZ IP address of the device.
func (*Client) Do ¶
Do sends a request to the server with the provided path. If data is nil, then GET will be used as the HTTP method, otherwise POST will be used.
func (*Client) FastbootFeatures ¶
FastbootFeatures retrieves fastboot feature information.
func (*Client) FirewallFeatures ¶
FirewallFeatures retrieves firewall security feature information.
func (*Client) GlobalConfig ¶
GlobalConfig retrieves global Hilink configuration.
func (*Client) GlobalFeatures ¶
GlobalFeatures retrieves global feature information.
func (*Client) LanguageSet ¶
LanguageSet sets the language.
func (*Client) ModeNetworkInfo ¶
ModeNetworkInfo retrieves current network mode information.
func (*Client) NatTypeSet ¶
NatTypeSet sets NAT type (values: 0, 1).
func (*Client) NetworkInfo ¶
NetworkInfo retrieves network provider information.
func (*Client) NetworkTypes ¶
NetworkTypes retrieves available network types.
func (*Client) NewSessionAndTokenID ¶
NewSessionAndTokenID starts a session with the server, and returns the session and token.
func (*Client) NotificationInfo ¶
NotificationInfo retrieves notification information.
func (*Client) PCAssistantConfig ¶
PCAssistantConfig retrieves PC Assistant configuration.
func (*Client) PhonebookCount ¶
PhonebookCount retrieves count of phonebook entries per group.
func (*Client) PhonebookCreate ¶
func (cl *Client) PhonebookCreate(ctx context.Context, group uint, name, phone string, sim bool) (XMLData, error)
PhonebookCreate creates a new phonebook entry.
func (*Client) PhonebookDelete ¶
PhonebookDelete deletes a specified phonebook entry.
func (*Client) PhonebookGroupList ¶
func (cl *Client) PhonebookGroupList(ctx context.Context, page, count uint, sortByName, ascending bool) (XMLData, error)
PhonebookGroupList retrieves list of the phonebook groups.
func (*Client) PhonebookImport ¶
PhonebookImport imports SIM contacts into specified phonebook group.
func (*Client) PhonebookList ¶
func (cl *Client) PhonebookList(ctx context.Context, group, page, count uint, sim, sortByName, ascending bool, keyword string) (XMLData, error)
PhonebookList retrieves list of phonebook entries from a specified group.
func (*Client) PinActivate ¶
PinActivate activates a SIM PIN.
func (*Client) PinDeactivate ¶
PinDeactivate deactivates a SIM PIN.
func (*Client) PinEnterPuk ¶
PinEnterPuk enters a SIM PIN puk.
func (*Client) PinSaveInfo ¶
PinSaveInfo retrieves SIM PIN save information.
func (*Client) PinSimlockInfo ¶
PinSimlockInfo retrieves SIM lock information.
func (*Client) PowerFeatures ¶
PowerFeatures retrieves power feature information.
func (*Client) ProfileInfo ¶
ProfileInfo retrieves profile information (ie, APN).
func (*Client) SetSessionAndTokenID ¶
SetSessionAndTokenID sets the sessionID and tokenID for the Client.
func (*Client) SignalInfo ¶
SignalInfo retrieves network signal information.
func (*Client) SipAlgSet ¶
SipAlgSet enables/disables SIP application-level gateway and sets SIP port.
func (*Client) SmsFeatures ¶
SmsFeatures retrieves SMS feature information.
func (*Client) SmsList ¶
func (cl *Client) SmsList(ctx context.Context, boxType, page, count uint, sortByName, ascending, unreadPreferred bool) (XMLData, error)
SmsList retrieves list of SMS in an inbox.
func (*Client) SmsReadSet ¶
SmsReadSet sets the read status of a SMS.
func (*Client) SmsSendStatus ¶
SmsSendStatus retrieves SMS send status information.
func (*Client) StatusInfo ¶
StatusInfo retrieves general device status information.
func (*Client) TetheringFeatures ¶
TetheringFeatures retrieves USB tethering feature information.
func (*Client) TrafficClear ¶
TrafficClear clears the current traffic statistics.
func (*Client) TrafficInfo ¶
TrafficInfo retrieves traffic statistic information.
func (*Client) UssdContent ¶
UssdContent retrieves content buffer of the active USSD session.
func (*Client) UssdRelease ¶
UssdRelease releases the active USSD session.
func (*Client) UssdStatus ¶
UssdStatus retrieves current USSD session status information.
func (*Client) WebUIConfig ¶
WebUIConfig retrieves WebUI configuration.
func (*Client) WifiFeatures ¶
WifiFeatures retrieves wifi feature information.
func (*Client) WlanConfig ¶
WlanConfig retrieves basic WLAN settings.
type ClientOption ¶
type ClientOption func(*Client)
CLientOption is a client option.
func WithAuth ¶
func WithAuth(id, pw string) ClientOption
WithAuth is a client option specifying the identifier and password to use. The option is ignored if id is an empty string.
func WithHTTPClient ¶
func WithHTTPClient(client *http.Client) ClientOption
WithHTTPClient is a client option that sets the underlying http client.
func WithLogf ¶
func WithLogf(logf func(string, ...interface{})) ClientOption
WithLogf is a client option that writes all http request and response data to the specified log func.
func WithNoStart ¶
func WithNoStart(nostart bool) ClientOption
WithNoStart is a client option to disable automatic start.
func WithTimeout ¶
func WithTimeout(timeout time.Duration) ClientOption
WithTimeout is a client option that sets the request timeout.
func WithTransport ¶
func WithTransport(transport http.RoundTripper) ClientOption
WithTransport is a client option that sets the http transport used.
func WithURL ¶
func WithURL(endpoint string) ClientOption
WithURL is a client option to set the URL endpoint.
type Error ¶
type Error string
Error is the error type.
const ( // ErrBadStatusCode is the bad status code error. ErrBadStatusCode Error = "bad status code" // ErrInvalidResponse is the invalid response error. ErrInvalidResponse Error = "invalid response" // ErrInvalidError is the invalid error error. ErrInvalidError Error = "invalid error" // ErrInvalidValue is the invalid value error. ErrInvalidValue Error = "invalid value" // ErrInvalidXML is the invalid xml error. ErrInvalidXML Error = "invalid xml" // ErrMissingRootElement is the missing root element error. ErrMissingRootElement Error = "missing root element" // ErrMessageTooLong is the message too long error. ErrMessageTooLong Error = "message too long" )
Error values.
type SmsBoxType ¶
type SmsBoxType uint
SmsBoxType represents the different inbox types available on a hilink device.
const ( SmsBoxTypeInbox SmsBoxType = iota + 1 SmsBoxTypeOutbox SmsBoxTypeDraft )
SmsBoxType values.