# callback receiver - a stub interface to receive callbacks
The callback receiver is intended for function tests to simulate a RAPP.
-The callback receiver exposes the read and write urls, used by the agent, as configured in service.
-The callback receiver receives notifications from PMS when synchronization happens between PMS and RICs. However, the callback receiver can be uses to receive any json payload from any source.
+The callback receiver exposes the read and write urls, used by the a1pms, as configured in service.
+The callback receiver receives notifications from A1PMS when synchronization happens between A1PMS and RICs. However, the callback receiver can be uses to receive any json payload from any source.
## Ports and certificates
The following REST operations are available:
>Send a message to CR<br>
-This method puts a request message from PMS to notify that sychronization between PMS and certain RIC happens.<br>
+This method puts a request message from A1PMS to notify that synchronization between A1PMS and certain RIC happens.<br>
```URI and payload, (PUT or POST): /callbacks/<id> <json messages>```<br>
```response: OK 200 or 500 for other errors```
>Fetch one message for an id from CR<br>
-This method fetches the oldes message for an id, and removes the message.<br>
+This method fetches the oldest message for an id, and removes the message.<br>
```URI and payload, (GET): /get-event/<id>```<br>
```response: <json messages> 200 or 500 for other errors```
```URI and payload, (GET): /get-all-events/<id>```<br>
```response: <json array of json messages> 200 or 500 for other errors```
->Dump all currently wating callback messages in CR<br>
+>Dump all currently waiting callback messages in CR<br>
This method fetches all message in an array for an id. Messages are left intact in the CR.<br>
```URI and payload, (GET): /db```<br>
```response: <json> 200```
```/counter/fetched_callbacks``` - The total number of fetched callbacks<br>
```/counter/current_messages``` - The current number of callback messages waiting to be fetched<br>
All counters also support the query parameter "id" to fetch counter for one individual id, eg ```/counter/current_messages?id=my-id```
-
+An additional counter is available to log remote hosts calling the server
+```/counter/remote_hosts``` - Lists all unique ip/host name that has sent messages on the callback endpoint<br>
### Build and start
file "generate_cert_and_key.sh" is a shell script to generate certificate and key
file "pass" stores the password when you run the shell script
-This certificates/key can be overriden by mounting a volume when using "docker run" or "docker-compose"
+This certificates/key can be overridden by mounting a volume when using "docker run" or "docker-compose"
In 'docker run', use field:<br>
>```-v "$PWD/certificate:/usr/src/app/cert"```<br/>
In 'docker-compose.yml', use field:
>```volumes: - ./certificate:/usr/src/app/cert:ro```
-The script ```cr-build-start.sh``` do the above two steps in one go. This starts the callback-receiver container in stand-alone mode for basic test.<br>If the callback-receiver should be executed manually with the agent, replace docker run with this command to connect to the docker network with the correct service name (--name shall be aligned with the other components, i.e. the host named given in all callback urls).
+The script ```cr-build-start.sh``` do the above two steps in one go. This starts the callback-receiver container in stand-alone mode for basic test.<br>If the callback-receiver should be executed manually with the a1pms, replace docker run with this command to connect to the docker network with the correct service name (--name shall be aligned with the other components, i.e. the host named given in all callback urls).
>```docker run --rm -it -p 8090:8090 -p 8091:8091 --network nonrtric-docker-net --name callback-receiver callback-receiver```
>Start the image on http only<br>